¿Es posible seleccionar, digamos, cada cuarto elemento en un conjunto de elementos?
Ej: tengo 16 <div>
elementos ... podría escribir algo así.
div:nth-child(4),
div:nth-child(8),
div:nth-child(12),
div:nth-child(16)
¿Hay una mejor manera de hacer esto?
css
css-selectors
Derek Adair
fuente
fuente
Respuestas:
Como su nombre lo indica, le permite construir una expresión aritmética usando la variable además de los números constantes. Puede realizar la suma ( ), la resta ( ) y la multiplicación de coeficientes ( donde es un número entero, incluidos números positivos, números negativos y cero).
:nth-child()
n
+
-
an
a
Así es como reescribiría la lista de selección anterior:
Para obtener una explicación sobre cómo funcionan estas expresiones aritméticas, consulte mi respuesta a esta pregunta , así como la especificación .
Tenga en cuenta que esta respuesta supone que todos los elementos secundarios de un mismo elemento padre son del mismo tipo de elemento,
div
. Si tiene otros elementos de diferentes tipos, comoh1
op
, deberá usarlos en:nth-of-type()
lugar de:nth-child()
para asegurarse de contar solodiv
elementos:Para todo lo demás (clases, atributos o cualquier combinación de estos), donde está buscando el enésimo hijo que coincide con un selector arbitrario, no podrá hacer esto con un selector CSS puro. Vea mi respuesta a esta pregunta .
Por cierto, no hay mucha diferencia entre 4n y 4n + 4 con respecto a
:nth-child()
. Si usa lan
variable, comienza a contar en 0. Esto es lo que coincidiría con cada selector::nth-child(4n)
:nth-child(4n+4)
Como puede ver, ambos selectores coincidirán con los mismos elementos que los anteriores. En este caso, no hay diferencia.
fuente
tr td:nth-child(4)
. Tenga en cuenta la falta de n entre paréntesisVer: http://css-tricks.com/how-nth-child-works/
fuente
Prueba esto
fuente
Necesita el argumento correcto para la
nth-child
pseudo clase.El argumento debe tener la forma de
an + b
hacer coincidir cada uno de los hijos a partir de b.Ambos
a
yb
son enteros opcionales y ambos pueden ser cero o negativos.a
es cero, entonces no hay una cláusula "cada uno de los hijos" .a
es negativo, la coincidencia se realiza hacia atrás a partir deb
.b
es cero o negativo, entonces es posible escribir una expresión equivalente usando positivo,b
por ejemplo,4n+0
es igual que4n+4
. Del4n-1
mismo modo es igual que4n+3
.Ejemplos:
Seleccione cada 4to niño (4, 8, 12, ...)
Seleccione cada cuarto niño a partir de 1 (1, 5, 9, ...)
Mostrar fragmento de código
Seleccione cada tercer y cuarto niño de grupos de 4 (3 y 4, 7 y 8, 11 y 12, ...)
Mostrar fragmento de código
Seleccione los primeros 4 elementos (4, 3, 2, 1)
Mostrar fragmento de código
fuente