element:nth-child(3n+3)
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)
Mas agora vamos voltar para o exemplo do começo, a expressão 3n+3, que seleciona cada terceiro elemento.
Para entender, basta pensar que o n é o número 0 que vai incrementando de um em um por cada inteiro positivo (1, 2, 3, 4). Para completar a expressão, multiplique o número ao lado do n por n, (3xn) + 3. Veja o exemplo abaixo que fica muito mais fácil de entender.
:nth-child(3n+3)
- (3 x 0) + 3 = 3 (3º elemento)
- (3 x 1) + 3 = 6 (6º elemento)
- (3 x 2) + 3 = 9 (9º elemento)
Você também pode usar o operador de subtração:
:nth-child(4n-1)
- (4 x 0) — 1 = -1 (nenhum elemento)
- (4 x 1) — 1 = 3 (3º elemento)
- (4 x 2) — 1 = 7 (7º elemento)
Usar -n fica meio estranho mas também é possível:
:nth-child(-n+3)
- -0 + 3 = 3 (3º elemento)
- -1 + 3 = 2 (2º elemento)
- -2 + 3 = 1 (1º elemento)
- -3 + 3 = 0 (nenhum elemento)
Fonte: Sitepoint
Originally published at blog.filipelinhares.com.