É possível selecionar, digamos, cada quarto elemento em um conjunto de elementos?
Ex: Eu tenho 16 <div>
elementos ... Eu poderia escrever algo assim.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
Existe uma maneira melhor de fazer isso?
css
css-selectors
Derek Adair
fonte
fonte
Respostas:
Como o nome indica, permite construir uma expressão aritmética usando a variável, além de números constantes. Você pode executar adição ( ), subtração ( ) e multiplicação de coeficientes ( onde é um número inteiro, incluindo números positivos, números negativos e zero).
:nth-child()
n
+
-
an
a
Veja como você reescreveria a lista de seletores acima:
Para uma explicação sobre como essas expressões aritméticas funcionam, veja minha resposta a esta pergunta , bem como as especificações .
Observe que esta resposta supõe que todos os elementos filhos no mesmo elemento pai sejam do mesmo tipo
div
. Se você tiver outros elementos de tipos diferentes, comoh1
oup
, será necessário usá-lo em:nth-of-type()
vez de:nth-child()
garantir que você conte apenasdiv
elementos:Para todo o resto (classes, atributos ou qualquer combinação desses), em que você está procurando o enésimo filho que corresponde a um seletor arbitrário, não poderá fazer isso com um seletor CSS puro. Veja minha resposta a esta pergunta .
A propósito, não há muita diferença entre 4n e 4n + 4 em relação a
:nth-child()
. Se você usar an
variável, ela começará a contar em 0. Isso é o que cada seletor corresponderia::nth-child(4n)
:nth-child(4n+4)
Como você pode ver, os dois seletores corresponderão aos mesmos elementos acima. Nesse caso, não há diferença.
fonte
tr td:nth-child(4)
. Observe a falta de qualquer n entre colchetesConsulte: http://css-tricks.com/how-nth-child-works/
fonte
Tente isto
fonte
Você precisa do argumento correto para a
nth-child
pseudo classe.O argumento deve estar na forma de
an + b
corresponder a cada um thésimo filho a partir de b.Ambos
a
eb
são inteiros opcionais e ambos podem ser zero ou negativo.a
for zero, então não há "cada um th criança" cláusula.a
for negativo, a correspondência será feita de trás para frenteb
.b
for zero ou negativo, é possível escrever uma expressão equivalente usando positivo,b
por exemplo,4n+0
é o mesmo que4n+4
. Da4n-1
mesma forma é o mesmo que4n+3
.Exemplos:
Selecione cada quarto filho (4, 8, 12, ...)
Selecione cada quarto filho a partir de 1 (1, 5, 9, ...)
Mostrar snippet de código
Selecione cada terceiro e quarto filho de grupos de 4 (3 e 4, 7 e 8, 11 e 12, ...)
Mostrar snippet de código
Selecione os 4 primeiros itens (4, 3, 2, 1)
Mostrar snippet de código
fonte