Artigo original: CSS Selectors Cheat Sheet
No CSS, seletores são padrões usados para selecionar elementos do DOM.
Aqui temos um exemplo de uso dos seletores. No código a seguir, a
e h1
são seletores:
a {
color: black;
}
h1 {
font-size 24px;
}
Ficha informativa dos seletores comuns
head
seleciona o elemento com a tag head
.red
seleciona todos os elementos com a classe "red"
#nav
seleciona os elementos com o id "nav"
div.row
seleciona todos os elementos com a tag div
e a classe "row"
[aria-hidden="true"]
seleciona todos os elementos com o atributo aria-hidden
cujo valor é "true"
- Seletor coringa (*) seleciona todos os elementos do DOM. Veja abaixo para o uso de outros seletores
Podemos combinar seletores de modos interessantes
Alguns exemplos:
li a
combinador descendente do DOM. Todos os elementos com a tag a
que são filhos de elementos com a tag li
div.row *
seleciona todos os elementos que são descendentes (ou filhos) dos elementos com a tag div
e a classe "row"
li > a
combinador de diferença. Seleciona descendentes diretos, em vez de todos os descendentes como os seletores de descendentes
li + a
combinador adjacente. Seleciona o elemento que precede imediatamente o elemento anterior. Neste caso, somente o primeiro a
após cada li
.
li, a
seleciona todos os elementos a
e todos os elementos li
.
li ~ a
o combinador de irmãos. Seleciona o elemento a
que segue um elemento li
.
Pseudosseletores ou classes pseudoestruturais
Esses elementos também são úteis para selecionar elementos estruturais do DOM.
Aqui temos alguns deles:
:first-child
seleciona o primeiro elemento imediatamente dentro de outro elemento (filho desse elemento)
:last-child
seleciona o último elemento imediatamente dentro de outro elemento (filho desse elemento)
:nth-child()
seleciona o n-ésimo elemento imediatamente dentro de outro elemento (filho desse elemento). Admite inteiros, even
, odd
ou fórmulas
a:not(.name)
seleciona todos os elementos a
que não sejam da classe .name
::after
permite a inserção de conteúdo em uma página a partir do CSS, em vez do HTML. Embora o resultado final não esteja de fato no DOM, ele aparece na página como se estivesse. Esse conteúdo carrega após os elementos do HTML.
::before
permite a inserção de conteúdo em uma página a partir do CSS, em vez do HTML. Embora o resultado final não esteja de fato no DOM, ele aparece na página como se estivesse. Esse conteúdo carrega antes dos elementos do HTML.
Podemos usar as pseudoclasses para definir um estado especial de um elemento do DOM. No entanto, eles não apontam para um elemento por eles mesmos.
Alguns exemplos:
:hover
seleciona um elemento que sobre o qual o ponteiro do mouse se encontra
:focus
seleciona um elemento que recebe o foco a partir do teclado ou de modo programático
:active
seleciona um elemento que esteja sendo clicado por um ponteiro de mouse
:link
seleciona todos os links que ainda não foram clicados
:visited
seleciona um link que já foi clicado
Mais informações sobre o seletor nth-child
O seletor nth-child
é uma pseudoclasse de CSS recebendo um padrão por onde corresponder um ou mais elementos relativos a sua posição entre irmãos.
Sintaxe
a:nth-child(padrão) {
/* O CSS vai aqui */
}
Padrão
Os padrões aceitos por nth-child
podem ser na forma de palavras-chave ou uma equação na forma An+B.
Palavras-chave
odd
odd retorna todos os elementos ímpares de um tipo determinado.
a:nth-child(odd) {
/* O CSS vai aqui */
}
even
even retorna todos os elementos pares de um tipo determinado
a:nth-child(even) {
/* O CSS vai aqui */
}
An+B
Retorna todos os elementos correspondendo à equação An+B para cada valor inteiro positivo de n (além de 0).
Por exemplo, o que vemos abaixo corresponderá a cada 3º elemento âncora:
a:nth-child(3n) {
/* O CSS vai aqui */
}
Jogos
CSS Diner é um jogo da web que ensina quase tudo o que é preciso saber sobre a combinação de seletores.
Referências adicionais
Existem muitos seletores de CSS! Saiba mais sobre eles em CodeTuts (em inglês), CSS-tricks.com (em inglês) ou na Mozilla Developer Network.