Este recurso CSS é particularmente útil para estilizar tabelas e listas complexas.
Como todos os seletores CSS, você pode usar :nth-child() para identificar elementos em uma página web e aplicar estilos a eles. Mas este seletor permite restringir um conjunto de irmãos com base em sua posição relativa.
O seletor oferece suporte a algumas palavras-chave básicas para casos comuns, mas também fornece uma poderosa sintaxe de correspondência de padrões. Usando-o, você pode selecionar elementos com base em padrões regulares e repetidos ou definições mais complexas, com base em suas necessidades.
A sintaxe do seletor :nth-child()
Como um Seletor de pseudoclasse CSS, a sintaxe :nth-child() difere de outros seletores. É necessário um argumento como padrão para combinar elementos em um conjunto de irmãos:
:nth-child(args) {
/*...*/
}
O foco principal está nos argumentos entre parênteses. Esses argumentos definem o subconjunto de elementos a serem selecionados.
Usando valores de palavras-chave para casos comuns
Este seletor pode acomodar dois valores de palavras-chave: chance e até. Eles são particularmente úteis para estilizando linhas alternativas em uma tabela.
Uma lista ordenada simples é outro bom exemplo de quando você pode usar estes valores de palavras-chave:
<ol>
<li>Item 1li>
<li>Item 2li>
<li>Item 3li>
<li>Item 4li>
<li>Item 5li>
<li>Item 6li>
<li>Item 7li>
ol>
Usando o :n-ésimo filho (ímpar) seletor, você pode alterar a cor de cada item alternativo:
:nth-child(odd) {
color: red;
}
Os itens começam no índice 1, então o primeiro item aparecerá em vermelho, depois o terceiro e assim por diante:
Notação funcional para mais flexibilidade
Você pode usar um único número inteiro para selecionar um elemento individual, assim:
li:nth-child(4) {
color: red;
}
Neste caso, o seletor corresponde apenas ao quarto item da lista:
Esta sintaxe é um caso especial da sintaxe funcional mais geral que seleciona itens que correspondem a um determinado padrão. Esta sintaxe é:
:nth-child(An+B) {
/*...*/
}
Nesta notação, A é o tamanho do passo. Isso significa o número de vezes que o seletor se move para selecionar o próximo item. Ele permite que você selecione todos os outros itens, cada terceiro item, etc. B é o ponto de partida onde a seleção começa.
Por exemplo, pegue o argumento 3n+1:
li:nth-child(3n+1) {
color: red;
}
Isso iniciará a seleção no primeiro item e continuará com cada terceiro item depois disso:
Compare isso com a expressão 3n+2:
li:nth-child(3n+2) {
color:red;
}
Isso ainda seleciona cada terceiro item, mas agora começa no segundo item da lista:
Outro exemplo interessante é :nth-child (n+3):
li:nth-child(n+3) {
color: red;
}
Este selecionará todos os itens (n), começando pelo terceiro (+3). Isso parecerá assim:
Você também pode usar a subtração para obter determinados resultados:
li:nth-child(3n-1) {
color: red;
}
Este exemplo ainda seleciona cada terceiro item, mas começa com “menos primeiro”. Na verdade, isso significa que ele selecionará o segundo item da lista, depois o quinto e assim por diante:
O de Sintaxe
Você também pode usar a palavra-chave de seguido por um seletor como um argumento no seletor :nth-child(). Essa sintaxe permite restringir os itens possíveis que o padrão regular seleciona.
Por exemplo, imagine que sua marcação seja mais complicada que a original:
<ol>
<liclass="old">Item 1li>
<liclass="new">Item 2li>
<liclass="new">Item 3li>
<liclass="old">Item 4li>
<liclass="new">Item 5li>
<liclass="new">Item 6li>
<liclass="new">Item 7li>
ol>
Agora, use :nth-child para selecionar os itens pares do conjunto daqueles com uma classe específica:
.new {
font-weight: bold;
}
li:nth-child(evenof.new) {
color: red;
}
Observe como apenas os itens pares em negrito são vermelhos:
Considere também como isso difere de li.new: enésimo filho (par) que tem como alvo novos elementos, mas apenas se eles forem pares. Estes seriam os itens 2 e 6 no exemplo acima.
Trabalhando com o seletor :nth-child()
Você pode obter designs exclusivos usando o seletor :nth-child(). Você pode criar sites coloridos e destacar linhas e colunas em tabelas de dados. Combiná-lo com outros seletores CSS ajudará você a criar layouts e designs complexos.