Curso Web Designer
UTD
Objetivos da Aula
➢
Boas práticas com o HTML; ➢
Validando o seu documento; ➢
Comen a blocos
Inden ação de código entre outras.
1
3
Nomes de atributos com algum significado
2
Boas práticas com o HTML
No HTML também temos boas práticas para o desenvolvimento, assim como: como em qualquer outra linguagem de programação. Coisas simples
3 Indentação
de código,
,entre outras.
2
Nomes de atributos com algum significado;
;
1
Comentar blocos;
Boas práticas
com o HTM
L
Comentário e Documentação
Use sempre os comentários, afinal, ao passar os anos sua cabeça não será mais a mesma, mas a função sim.
Comentar um código, se tornou cada dia mais útil e eficiente. Os comentários são a melhor arma que um programador pode ter, pois evitará maiores trabalhos no futuro.
Boas práticas com o
HTM
L
Boas práticas com o HTM
L
Indentação
Sem uma boa indentação o código perde toda a hierarquia de No são comandos, e você acaba se perdendo em seu próprio código.
entanto, existem várias formas de indentar o seu código, todas elas
Indentação é sem dúvida, a parte mais importante no
desenvolvimento. Em tipografia, indentação é o recuo de um texto em relação a sua margem.
Boas práticas com o HTM
L
Boas práticas com o HTML
Indentação
Por mais que isso vá consumir mais linhas de código, o resultado final é o mesmo. Lembre-se:
Na hora da manutenção, você precisa saber onde alterar/reparar, e não pode perder tempo tentando
entender o que foi feito por você, ou por outros. Salve
Boas práticas com o HTML
Nomes
Quando falamos de nomes de atributos ou variáveis, que é simples, e não tem importância alguma.
todos pensam
Mas me diga, qual é o significado do código abaixo?
<div id=”topo2” class=”bgCinza1 fonte2 azul metade”> ...<--! Seu código -->
m
Boas práticas com o HTML
Nomes
O mesmo código escrito de maneira diferente diferente, e também elementos precise se
e modular, visto que estamos em uma página
provavelmente alguns dos diferente.
em uma header que comportar de maneira Qual o real significado disso? Fez sentido para você? E para que
vai atualizar o sistema? O que é bgCinza1, fonte2, azul, etc? Quantos outros atributos sem sentido existem?
Boas práticas com o HTML
Nomes
Cada desenvolvedor tem seu próprio padrão, mas este precisa fazer algum sentido, e ser utilizado em todo o projeto. Com isto, no final o
código poderá ser reutilizado ou compreendido por qualquer pessoa que o leia, e tenha o mínimo de conhecimento em desenvolvimento.
Qual o é significado de <a href=”#” class=”link1”></a>?
Objetivos da Aula
Aula 06 (parte 1/2)
➢
O que é CSS? ➢
Conhecendo suas características; ➢
Agrupamento de seletores; ➢
Seletor descendente (ou encadeado); ➢
Atributos Class e ID; ➢
Objetivos da Aula
Aula 06 (parte 2/2)
➢ Sprite; ➢ Cores; ➢ Unidades de medida; ➢ Grupos de Propriedades; ➢ Seletores Complexos;O que é CSS?
O que é CSS?
O Cascading Style Sheets (folha de estilo em cascata, ou simplesmente CSS), é uma linguagem de folhas de estilo que formata a informação entregue pelo HTML. Seu principal benefício é:
Prover a separação entre o formato e o conteúdo de um documento, que pode ser qualquer coisa: imagem, texto, vídeo, áudio ou qualquer outro elemento criado. Portanto, o CSS formata a
O que é CSS?
No CSS Aural, é possível:
Manipular o áudio entregue
do som, tipo da voz, ou em qual
De certa forma, o usuário formata a informação que está em formato de áudio, e que o visitante consume ao entrar no site. O CSS prepara
a informação para ser consumida da melhor maneira possível. Para mais Controlar o volume, profundidade
caixa de som a voz sairá. ao visitante pelo sistema
O que é CSS?
Basicamente, as atualizações do HTML 5
foram:
Com o CSS que nós conhecemos podemos formatar algumas características básicas: cores, background, características de font,
muito
margins, paddings, posição e ainda controlamos de uma maneira 1 As criações de novas tags.
2 A mudança do significado de alguns elementos que foram modificados. 3 Outras tags que foram descontinuadas.
O que é CSS?
Com as atualizações do CSS3 e com os browsers atualizando o suporte do CSS2.1, nós entramos em um patamar onde sem
arma mais poderosa para o designer web.
dúvida o CSS é a
Você deve entender 3 coisas sobre o CSS:
Ele resolve problemas do HTML (formatação); dados da formatação; Separa a estruturação de
Economiza tempo de trabalho, aumentando a reusabilidade.
O que é CSS?
Solução para problemas no HTML
Tags HTML foram desenvolvidas originalmente para definir o conteúdo do documento;
O layout do documento era supostamente tratado pelo browser, sem usar qualquer formatação;
Economizam tempo de trabalho, aumentando a reusabilidade; O conteúdo do documento HTML foi claramente
layout de apresentação de documentos.
O que é CSS?
Para resolver este problema,
o W3C
criou o Estilo (STYLE) no HTML4.0
Conhecendo suas características
Para construir uma CSS basta utilizar corretamente os 5 componentes:
Muito do poder da linguagem CSS está nos seletores. Com eles, podemos escolher qualquer elemento na página para aplicar estilos. Um
seletor representa uma estrutura. Ela é ultilizada como uma condição para determinar quais elementos de um grupo serão formatados.
Valor Propriedade Declaração Bloco de declaração Seletor
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
Propriedade
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
Conhecendo suas
características
Veja como funciona:
p { color: blue; }
p
= Seletor
{ }
= Bloco de declaração
color: blue
= Declaração
Conhecendo suas características
Se o valor é composto de múltiplas palavras, será necessária a utilização de aspas:
Conhecendo suas características
Para especificar vírgula.
mais de uma propriedade, é necessário utilizar ponto e
p {
text-align: center;
color: blue;
Agrupamento de seletores
Agrupamento de seletores
Agrupa elementos formatação.
separados por vírgula, para que herdem a mesma
Seletor descendente (ou encadeado)
Seletor descendente (ou encadeado)
Com este seletor, podemos dentro de outro, ou seja, que
escolher um ou mais elementos que estão são descendentes do elemento principal.
Com isso, selecionamos apenas tags strong que estão dentro de
Seletor descendente (ou encadeado)
Podemos selecionar com mais especificidade, escrevendo com mais elementos, como:
Neste exemplo, selecionamos links (a) que estão dentro de tags strong, que sua vez, estão dentro de parágrafos, e ficam dentro de tags div.
Atributos Class e ID
Seletor de classe
Ele seleciona elementos com uma classe específica aplicada.
O .destaque seleciona todos os elementos com a classe "destaque".
Atributos Class e ID
Seletor de id
O seletor de id, seleciona o elemento com a id especificada. Cada id é única e não pode ser repetida no mesmo documento.
Combinando Seletores
Podemos combinar os seletores para conseguir diferentes elementos, e partes mais específicas de nossos sites. Veja alguns exemplos:
p.destaque seleciona apenas os parágrafos que possuem
"destaque"; a classe ➢ div#cabecalho h1 a id "cabecalho". #conteudo ul li a
por sua vez, estão
seleciona tags h1 que estejam dentro da div, com
➢
seleciona dentro de
links (a) dentro de itens
tags ul, e ficam dentro de
de lista, que um elemento
Combinando Seletores
#conteudo p.destaque strong seleciona elementos strong dentro
➢
de parágrafos com a dentro de um elemento
.mensagem.destaque
classe "mensagem", e
classe "destaque", que por sua vez, estão com a id "conteudo";
seleciona apenas elementos que tenham a
➢
a classe "destaque".
Separa itens por vírgulas, como p.destaque, h1, a.saiba-mais e
➢
seleciona todos os elementos para as regras.
Combinando Seletores
Estes seletores são para cobrir suas necessidades básicas de formatação de elementos. Eles simplificam de uma forma que vai fazer você:
Trabalhar menos, e escrever
menos código CSS e Javascript.
São os seletores complexos que veremos posteriormente.
1 2
3
Utilização do CSS
Existem 3 formas de utilização do CSS:
3 Em um arquivo CSS externo.
2 No cabeçalho <HEAD> de uma página HTML;
Utilização do CSS
CSS Inline
Mistura a estrutura com apresentação;
➢
➢Não recomendado pelos padrões web (Web Standards).
Exemplo:
Utilização do CSS
CSS dentro do HTML
Um único estilo para um documento;
Não recomendado pelos padrões web (Web Standards);
➢ ➢
➢Deve ser inserido no cabeçalho do HTML pelas TAGs <style>.
Exemplo:
<head>
<style type="text/css"> p{color: blue;}
Utilização do CSS
CSS externo
Ideal para aplicar em várias páginas; Recomendado pelos padrões web (Web
➢ ➢ ➢ ➢ ➢ ➢ Standards); Possibilita mudar o layout apenas do arquivo CSS;
Cada página deve ter um vínculo com a folha de estilo; CSS externo é apenas um arquivo com extensão .css;
Todas as páginas que utilizam esta folha de estilo, terão o seu conteúdo alterado.
Utilização do CSS
Posso utilizar os três modos?
Sim, mas atente-se a ordem de execução:
CSS inline sobre-escreve todas as outras.
Em uma TAG HTML (inline) CSS dentro do
HTML (<head>) CSS externo
Sprite
Sprite
Pra quem não conhece, essa é uma técnica que se baseia em combinar diversas imagens em uma só, em busca de diminuir o número de requisições HTTP para o servidor.
E essa é apenas uma de suas aplicações, no mundo dos games, por exemplo, ela é muito usada para fazer animações.
Sprite
Fazer uma requisição para cada uma das imagens é muito ruim em termos de performance, por
seguinte maneira: Montamos
isso podemos recorrer aos CSS Sprites da nossa lista não-ordenada de elementos, mas ao invés de utilizarmos
dos itens.
a tag img, aplicamos uma classe para cada um
Exemplo:
<ul>
<li class="escudos class="escudos
Sprite
Para então no CSS, utilizarmos como background apenas uma imagem
que contém todos os escudos. E para cada um dos elementos, colocamos a posição X e Y dentro dessa imagem que contém todos eles.
Exemplo: .escudos { background: url('images/sprite.png') } .atletico-mg { no-repeat; background-position: 0 -416px; } .botafogo { 0 -557px;
Sprite
Assim, conseguimos diminuir o tamanho em KB dos dados também o número de requisições HTTP para o servidor.
trafegados e
Para aplicar essa técnica você pode recorrer ao Photoshop ou Illustrator colocando todas as imagens em um só arquivo e então buscando a posição X (vertical) e Y (horizontal) com a régua. Uma excelente alternativa para pessoas masoquistas.
1 2
Cores
Cores
A W3C propõe diferentes maneiras de definir cores entre elas:
3 Código Hexadecimal.
2 RGB em valores inteiros ou porcentagem;
Cores
Cores
Você pode definir a cor, utilizando o nome da cor. Os nomes das cores que são válidos, são os listados nas recomendações CSS do W3C.
As recomendações para CSS 2.1, listam as 17 cores seguintes:
aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, orange, purple, red, silver, teal, white, e yellow
Cores
Cores
Cores
É possível definir mais de 16 O RGB é abreviatura para:
milhões de cores indicando os valores RGB.
Assim, o código rgb(X, Y, Z)
quantidade X de vermelho
indica uma cor obtida, com a mistura de uma + Y de verde e Z de azul. Duas são as maneiras de definir a quantidade de cada cor: Uma faixa de numeração (0
Cores
Cores
Não é válido usar em uma definição número e porcentagem.
Exemplos:
Definições válidas
rgb(145, 230, 50) ou rgb(20%, 0%, 70%)
Cores
Cores
Em Hexadecimal também é possível definir mais de 16 milhões, assim como no RGB. Esta é a maneira mais conhecida de definir uma cor com
#RRGGBB onde RR, GG e BB representam um número hexadecimal entre 00 e FF para o Vermelho, o Verde e o Azul.
Hexadecimal é uma notação de 16 dígitos:
Cores
Cores
É indiferente usar letras maiúsculas ou minúsculas na sintaxe hexadecimal de cores,
dígitos:
no entanto, é válido abreviar a notação para três
#FFF = #FFFFFF ➢ ➢ #CF9 = #CCFF99 #cde = #ccddee #49c = #4499cc ➢ ➢
Unidades de medida
Unidades de medida
Tamanhos:
px: É a unidade para pixel;
%: É a unidade para porcentagem;
pt: É a unidade para pontos;
➢ ➢ ➢
Unidades de medida
Grupos de Propriedades
Grupos de Propriedades
Dividiremos as propriedades em grupos. São eles:
1 1 2 2 3 3 4 4 5 5 Link k s Listas Cores de fundo Fontes Text
t o o s 6 6 7 7 Agrupamentos de Outras propriedades
Cores de Fundo
Grupo 1: Cores de fundo
background-color: É a propriedade que define elemento;
a cor de fundo de um
➢
background-image: É a propriedade que define uma imagem como fundo;
background-position: É a propriedade que define o posicionamento da imagem na página;
background-attachment: É a propriedade que define se a imagem
➢
➢
Cores de Fundo
Grupo 1: Cores de fundo
background-repeat: É a propriedade que controla uma imagem de fundo. (repeat | repeat-x | repeat-y |
a repetição de
no-repeat);
➢
background-size: É a propriedade que define o tamanho das
➢
Fontes
Grupo 2: Fontes
font-family: É a propriedade que define a lista de fontes a ser utilizada;
serif: Caracterizada pelas fontes que possuem “pé”, (Times, Georgia);
san-serif: Caracterizada pelas fontes que não possuem “pé” (Arial);
➢ ➢ ➢
➢monospace: Caracterizada pelas fontes que possuem uma largura fixa.
Ao especificar a fonte, é necessário informar qual a sua característica, caso nenhuma da lista for encontrada.
Fontes
Grupo 2: Fontes
font-style: É a propriedade que define
italic | oblique*);
o estilo da fonte. (normal |
➢
font-variant: É a propriedade que define a variação em tamanho da fonte. (normal | small-caps);
➢
font-weight: É a propriedade que define o “peso” da fonte.
bold | lighter | number);
(normal |
➢
font-size: É a propriedade que define o tamanho da fonte.
Textos
Grupo 3: Textos
color: É a propriedade que define a cor
text-align: É a propriedade que define
right | center | justify);
de um texto;
o alinhamento do texto. (left |
➢ ➢
text-decoration: É a propriedade que define “decoração” no texto. (none | underline | overline | line-through);
text-indent: É a propriedade que define um espaçamento da primeira linha do texto;
➢
Textos
Grupo 3: Textos
line-height: É a propriedade que define texto;
a distância entre as linhas do
➢
word-spacing: É a palavras;
letter-spacing: É a
propriedade que define o espaçamento entre as
➢
propriedade que define o espaçamento entre os
➢
Links
Grupo 4: Links
Para usarmos CSS em links, precisamos conhecer um pouco mais sobre
Pseudo-Classes. CSS Pseudo-Classes são usadas para adicionar efeitos especiais em alguns seletores.
Links
Grupo 4: Links
:active: Adiciona um estilo no elemento
:focus: Adiciona um estilo que tem foco
ativo; ativo;
➢ ➢
➢:hover: Adiciona um estilo que tem o ponteiro do
elemento;
:link: Adiciona um estilo no link que não foi visitado;
mouse sobre o
➢
Listas
Grupo 5: Listas
list-style-image: É marcador da lista. list-style-position: marcador da lista.a propriedade que defini uma imagem como
➢
É a propriedade que define a posição do
➢
list-style-type:
lista.
É a propriedade que define o estilo de marcador da
Box-Model
Grupo 6: Box Model
O box model (modelo de caixa) compreende todos os elementos documento HTML e está relacionado ao layout da sua página.
do
Essencialmente, um box model consiste dos seguintes itens:
Conteúdo Espaçamentos
Bordas Margens
Box-Model
Box-Model
Grupo 6: Box Model
A leitura do tamanho deve ser realizada em sentido final de um box model é definido pela soma de:
horário, e o tamanho
Largura total = width + left padding + right padding + left border + right border + left margin + right margin.
Altura total = height + top padding + bottom padding + top border
+ bottom border + top margin + bottom margin.
➢
➢
Box-Model
Grupo 6: Box Model
Qual será o tamanho final deste elemento?
div{
width:220px; height:500px; padding:10px;
border:5px solid gray;
Box-Model
Grupo 6: Box Model
Largura final: 220 + 10 + 10 + 5 + 5 = 250px
Box-Model
Grupo 6: Box Model
Margem, espaçamento e bordas
forma:
podem ser declarados da seguinte
propriedade-top: valor; propriedade-left: valor; propriedade-bottom: valor; propriedade-right: valor; ➢ ➢ ➢ ➢
Box-Model
Grupo 6: Box Model
Margens(margin): são as distâncias definidas, entre os lados que determinam o limite do seu documento/elemento.
body{
margin-top:100px; margim-right:50px; margim-bottom:150px; margim-left:100px;
Box-Model
Grupo 6: Box Model
Espaçamento(padding): são as distâncias e o conteúdo do documento/elemento.
definidas, entre as margens
body{
margin:100px 50px 150px 100px; padding: 20px;
Box-Model
Grupo 6: Box Model
Bordas(border): são as distâncias definidas, entre as margens e o espaçamento/conteúdo do seu documento/elemento.
body{ margin:100px 50px padding: 20px; border-width:1px; 150px 100px; }
Box-Model
Grupo 6: Box Model
border-width: É a propriedade que define a espessura de borda que
➢
será utilizado (medium | thin | thick | length);
border-color: É a propriedade que define a cor da borda;
➢
border-style: É
dashed | solid |
a propriedade que define
double | groove | ridge |
o estilo da borda
inset | outset).
(dotted |
Box-Model
Grupo 6: Box Model
Há também uma forma de controlar o Box-Model chamada box-sizing.
É uma propriedade que permite que mudemos o comportamento padrão do box-model.
Por padrão todos os elementos possuem o valor content-box para essa propriedade, sendo definido pelo conteúdo.
Box-Model
Grupo 6: Box Model
Essa propriedade permite um novo valor que resolve todos os problemas:
box-sizing: border-box;
O que ela faz? Simples! Altera o comportamento do box-model
fazendo com que o navegador calcule
contando não apenas o seu conteúdo mas
a largura e altura do elemento
Box-Model
Grupo 6: Box Model
Para aplicar essa regra geral para todo o site e, que seja funcional em todos os navegadores, basta adicionar a regra abaixo no CSS:
* {
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;
Box-Model
Outras propriedades
Grupo 7: Outras propriedades
É possível controlar a largura e altura dos elementos.
width: Determina a largura de um elemento;
height: Determina a altura de um elemento;
max-width e min-width: Determina a largura um elemento; ➢ ➢ ➢ máxima e mínima de max-height e um elemento.
min-height: Determina a altura máxima e mínima de
Outras propriedades
Grupo 7: Outras propriedades
Display (mostra) e Visibility (visibilidade).
A propriedade display determina como será apresentado o elemento, enquanto visibility determina se o elemento será visível ou não.
Os Os valores valores possíveis possíveis para para
visibility são: (visible | hidden);
display são: (none | block | inline
➢
Outras propriedades
Grupo 7: Outras propriedades
As diferenças entre display:none e visibility:hidden são:
display:none ocultará um elemento, e não ocupará o espaço no layout;
➢
visibility:hidden ocultará um elemento, mas continuará ocupando o
➢
Outras propriedades
Grupo 7: Outras propriedades
Posicionamento(position): Esta propriedade os elementos na tela. Este posicionamento atributos top, right, bottom e left.
permite que posicionemos pode ser realizado pelos
Para que estes atributos funcionem corretamente, devemos primeiramente definir qual o método
| fixed | relative | absolute).
Outras propriedades
Grupo 7: Outras propriedades
static: Segue o fluxo do layout da página;
➢
fixed: Método que fixará o elemento, mesmo um scroll;
que a página possua
➢
relative: bottom
Método que em conjunto com os de
atributos top, right,
➢
e left, movimentam o elemento acordo com o valor declarado. Este elemento pode sobrepor outros elementos, mas o
Outras propriedades
Grupo 7: Outras propriedades
absolute: Método que em conjunto com os atributos top, right,
➢
bottom e left, movimentam o elemento de acordo com o valor declarado. Este elemento não preserva o espaço de origem.
Há uma opção que controla a posição de profundidade do elemento, podendo controlar a
elemento em cima do
posição em via de camada, como se fosse um outro. É necessário usar posição para funcionar.
z-index: Método que permite trabalharmos os elementos em
Outras propriedades
Grupo 7: Outras propriedades
Flutuação(float):
Esta propriedade permite movimentar
um elemento para esquerda ou direita, e ainda podemos preencher o espaço vagolado com outro elemento.
ao
Um elemento pode ser movimentado, apenas para a esquerda ou para
cima ou
a direita. Não é possível movimentar um elemento para para baixo. Para isto, utiliza-se a propriedade float.
Outras propriedades
Grupo 7: Outras propriedades
Um elemento flutua para esquerda ou para a direita, até possuir Caso não possua mais espaço, o elemento flutuará para baixo:
espaços.
left: Flutua o elemento para a esquerda;
right: Flutua o elemento para a direita.
➢ ➢
Para quebrarmos essa flutuação, utilizamos dos seguintes valores: (left | right | both).
Seletores Complexos
Boa parte da inteligência do CSS, está em saber utilizar uma maneira eficaz, escalável e inteligente.
os seletores de
Os seletores complexos selecionam elementos, que talvez seja preciso
fazer algum script em JavaScript para poder marcá-lo com uma
CLASS, ou um ID, para, então, formatá-lo.
Com os seletores complexos, você consegue formatar
elementos que antes eram inatingíveis.
Seletores Complexos
Agora, veja uma lista de seletores complexos e suas funções:
Não são todas as possibilidades, porque podem haver modificações e novos formatos. Lista atualizada pelo W3C:
www.w3.org/TR/css3-selectors/#selectors
Imagine que você tenha um título (h1), seguido de um parágrafo (p). É preciso selecionar todos os parágrafos que vem depois de um título H1. Com os seletores complexos, você fará assim:
Seletores Complexos
Este seletor é um dos mais simples e mais úteis, comparado utilizados em projetos por aí.
aos que são
Não é preciso adicionar uma classe com JQuery, e nem manipular o
CMS para marcar esse parágrafo. Ou seja, não precisamos fazer
H1. “milagre” para encontrar os parágrafos que vem logo depois de um
Seletores Complexos
elemento[atr]: Elemento com um atributo específico;
➢
➢elemento[atr=”x”]: Elemento que tenha um atributo com valor
específico, igual a “x”;
elemento[atr~=”x”]: Elemento com um atributo, cujo valor é uma lista separada por espaços, sendo que um dos valores é “x”;
elemento[atr^=”x”]: Elemento com um atributo, cujo valor comece exatamente com string “x”;
elemento[atr$=”x”]: Elemento com um atributo, cujo valor termina exatamente com string “x”;
➢
➢
Seletores Complexos
elemento:nth-child(n):
elemento;
Seleciona um objeto N de um determinado
➢
elemento:checked: Seleciona elementos que estão checados, como radio buttons e checkboxes;
➢ E E > + F: F: Seleciona Seleciona
os elementos Es, que são filhos diretos de F;
➢
Pseudo-classes
Pseudo-classes
Pseudo-classes são tipos de classes especiais pelo desenvolvedor (já são pré-definidas).
que não são definidas
A sua o link nome
maior utilização é com links (a) para definir diversos estilos quando é novo, visitado, etc. O seletor de pseudo-classe é escrito com o do elemento + dois pontos(:) + nome da pseudo-classe.
Pseudo-classes
As pseudo-classes dinâmicas
As pseudo-classes dinâmicas controlam os estados dos elementos.
Todos os elementos tem estados definidos, por exemplo o elemento link (a) tem vários estados:
Quando você passa o mouse, tira o mouse, clica no mouse e
quando ele é visitado. Estes estados do link podem ser formatados e também estão presentes em outros elementos.
Pseudo-classes
Para começar, vamos nos familiarizar com as pseudo-classes de links:
a:link: Apenas para os links não-visitados;
➢ ➢ ➢
a:visited: Quando o elemento foi visitado;
a:active: Quando o elemento está ativo ou pressionamos Enter.
Pseudo-classes
a:hover: Quando o mouse está em cima do mesmo.
➢
a:focus: Quando o elemento ganha foco. Por exemplo, quando os
➢
inputs ganham foco para serem preenchidos.
Útil para pessoas que possuem habilidade limitada, Podemos fazer diversos efeitos interessantes,
Pseudo-classes
Pseudo-classes estruturais
As pseudo-classes estruturais encontram elementos elementos.
em uma árvore de
Eles não formatam os estados, mas nos ajudam a encontrar elementos
específicos para que sejam formatados sem a ajuda de programação, ou inserção de alguma identificação direta no código. Por exemplo, uma
Pseudo-classes
Hoje podemos encontrar facilmente estes elementos, classe: nth-child().
utilizando a
Pseudo-classes
O seletor anterior encontra todas as linhas da tabela (tr) ímpares (odd)
dentro da tabela, e aplica um background cinza. Simples, não é?
Então, lembre-se:
Pseudo-classes selecionam elementos específicos nas árvores de elementos do HTML.
Pseudo-classes
Veja a lista de pseudo-classes que o CSS3 adicionou à cartilha:
elemento:target: Encontra um elemento alvo, e é muito utilizado para fazer abas;
elemento:empty: Encontra elementos que não tem filhos;
elemento:enabled: Encontra elementos que estão habilitados. Por exemplo: inputs de checkbox, texto e etc;
➢
➢ ➢
elemento:disabled: Encontra ou manipulação;
elementos desabilitados para edição
➢
Pseudo-classes
elemento:first-of-type: Encontra o primeiro elemento do tipo;
elemento:last-of-type: Encontra o último elemento do tipo;
elemento:first-child: Encontra o primeiro elemento filho;
elemento:last-child: Encontra o último elemento filho;
➢ ➢ ➢ ➢
➢ elemento:nth-of-type(pos): Encontra um elemento tomando como
base sua posição na árvore de elementos do mesmo gênero;
elemento:nth-child(pos): Encontra um elemento tomando como base sua
posição na árvore de elementos;
➢
elemento:not(class): Seleciona os elementos definidos, MENOS os
➢
Pseudo-classes
Pseudo-elementos
Os pseudo-elementos permite que os autores selecionem informações
inacessíí́veis, e também possibilita aos desenvolvedores um caminho para referenciar conteúdos que não existem. Por exemplo:
Podemos inserir um elemento antes (::before), ou depois (::after) de um objeto já existente no HTML.
Pseudo-classes
Existem alguns pseudo-elementos básicos, que você já deve ter usado em seus projetos:
elemento::first-letter: Encontra a primeira letra da primeira palavra de um bloco de texto;
elemento::first-line: Seleciona a primeira linha de um bloco de texto;
➢
➢
➢ elemento::before: Insere um elemento no
elemento;
início do conteúdo de um
elemento::after:
elemento.
Insere um elemento no final do conteúdo de um
Prefixos de identificação dos browsers
A combinação da grande variação de browsers no em
mercado, com
problemas
as
de
mais novas features do CSS, resultam
compatibilidade. Exemplo:
Utilizar uma feature que ainda está sendo estudada, e que somente o Firefox, por exemplo, suporta.
Caso você utilize a propriedade no seu CSS, os browsers que não suportam essa propriedade, ou que suportam com uma sintaxe diferente, podem dar problemas.
Prefixos de identificação dos browsers
Os prefixos (ou vendor-prefixes) são úteis para podermos experimentar
features que ainda estão sendo estudadas, e que são rascunhos nos documentos do W3C. A necessidade de ser adicionar prefixos antes das
propriedades, vem do fato que o CSS3 vem sendo adicionado gradativamente nos navegadores.
Um efeito x não funcionará da
=
=
Navegador y
Efeito X mesma maneira dos navegadores
y e z, e pode ser que alguns deles não Navegador z
Prefixos de identificação dos browsers
Os principais abaixo:
Prefixos de identificação dos browsers
A primeira vista pode parecer complicado trabalhar com prefixos, mas além de ser uma parte importante no processo de padronização do
CSS3, você poderá posteriormente, evitar retrabalhos em projetos.
Além borda
CSS3
linhas
disso, ao trabalhar com um efeito de arredondada, por exemplo, sem utilizar o
você teria muito mais de código e imagens.