Como funciona o nth-child()
element:nth-child(3n+3) {
// some style here
}
Muita gente, assim como eu, um dia se perguntou - O que é esse “n” ai no meio? – É isso que eu vou explicar hoje.
O que o código acima faz, é selecionar cada terceiro elemento, ou seja, o 3º, 6º, 9º.
Mas o que acontece entre os parênteses?
O seletor nth-child()
aceita duas palavras-chaves, “odd” (impar) e “even” (par). Como o nome já diz, odd
seleciona cada número impar e o even
cada número par.
Como visto no primeiro exemplo, nth-child()
também aceita expressões. A expressão mais simples que podemos utilizar é utilizar apenas um número, isso ira selecionar apenas o elemento que corresponder aquele número.
element:nth-child(5) {
// some style here
}
Mas agora vamos voltar para o exemplo do começo, a expressão 3n+3
, que seleciona cada terceiro elemento.
Para entender, você tem que pensar no n
como o número 0 que ira iterando por cada inteiro positivo (1, 2, 3, 4). Para completar a expressão, multiplique o primeiro número por n
(3xn) + 3. Agora vamos substituir o n
pelo 0 e os outros inteiros.
- (3 x 0) + 3 = 3 = 3rd Element
- (3 x 1) + 3 = 6 = 6th Element
- (3 x 2) + 3 = 9 = 9th Element etc.
Você também pode usar o operador de subtração:
:nth-child(4n-1)
- (4 x 0) - 1 = -1 = no match
- (4 x 1) - 1 = 3 = 3rd Element
- (4 x 2) - 1 = 7 = 7th Element etc.
Usar -n
fica meio estranho mas também é possível:
:nth-child(-n+3)
- -0 + 3 = 3 = 3rd Element
- -1 + 3 = 2 = 2nd Element
- -2 + 3 = 1 = 1st Element
- -3 + 3 = 0 = no match
Fonte: http://www.sitepoint.com/web-foundations/understanding-nth-child-pseudo-class-expressions/