Comprender el selector CSS :nth-child()

Comprender el selector CSS :nth-child()
Lectores como usted ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Como todos los selectores de CSS, puede utilizar :nth-child() para identificar elementos en una página web y aplicarles estilos. Pero este selector le permite limitar un conjunto de hermanos según su posición relativa.





MUO Vídeo del día DESPLÁCETE PARA CONTINUAR CON EL CONTENIDO

El selector admite algunas palabras clave básicas para casos comunes, pero también proporciona una poderosa sintaxis de coincidencia de patrones. Al usarlo, puede seleccionar elementos basados ​​en patrones regulares y repetidos o definiciones más complejas, según sus necesidades.





La sintaxis del selector :nth-child()

Como un Selector de pseudoclase CSS , la sintaxis :nth-child() difiere de la de otros selectores. Toma un argumento como patrón para hacer coincidir elementos en un conjunto de hermanos:





 :nth-child(args) { 
    /*...*/
}

La atención se centra principalmente en los argumentos entre paréntesis. Estos argumentos definen el subconjunto de elementos a seleccionar.

mover los programas instalados a otra unidad de Windows 10

Uso de valores de palabras clave para casos comunes

Este selector puede acomodar dos valores de palabras clave: extraño y incluso . Son particularmente útiles para diseñar filas alternativas en una tabla .



Una lista ordenada simple es otro buen ejemplo de cuándo podría utilizar estos valores de palabras clave:

 <ol> 
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
    <li>Item 6</li>
    <li>Item 7</li>
</ol>

Utilizando el : n-ésimo hijo (impar) selector, puede cambiar el color de cada elemento alternativo:





 :nth-child(odd) { 
    color: red;
}

Los elementos comienzan en el índice 1, por lo que el primer elemento aparecerá en rojo, luego el tercero, y así sucesivamente:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones uno, tres, cinco y siete son rojos.

Notación funcional para mayor flexibilidad

Puede utilizar un único número entero para seleccionar un elemento individual, como este:





 li:nth-child(4) { 
    color: red;
}

En este caso, el selector sólo coincide con el cuarto elemento de la lista:

  Una lista numerada que muestra siete elementos. El elemento en la posición cuatro es rojo.

Esta sintaxis es un caso especial de la sintaxis funcional más general que selecciona elementos que coinciden con un patrón determinado. Esta sintaxis es:

 :nth-child(An+B) { 
    /*...*/
}

En esta notación, A es el tamaño del paso. Esto significa la cantidad de veces que el selector se mueve para seleccionar el siguiente elemento. Le permite seleccionar uno de cada dos elementos, uno de cada tres elementos, etc. B Es el punto de partida donde comienza la selección.

Por ejemplo, tomemos el argumento 3n+1:

 li:nth-child(3n+1) { 
    color: red;
}

Esto iniciará la selección en el primer elemento y continuará con cada tercer elemento después de eso:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones uno, cuatro y siete son rojos.

Compare esto con la expresión 3n+2:

 li:nth-child(3n+2) { 
    color:red;
}

Esto todavía selecciona cada tercer elemento, pero ahora comienza desde el segundo elemento de la lista:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones dos y cinco son rojos.

Otro ejemplo interesante es :nth-child(n+3):

mi teléfono no se enciende y está completamente cargado
 li:nth-child(n+3) { 
    color: red;
}

Éste seleccionará cada elemento (n), comenzando desde el tercero (+3). Se verá así:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones tres a siete son rojos.

También puedes utilizar la resta para lograr ciertos resultados:

 li:nth-child(3n-1) { 
    color: red;
}

Este ejemplo todavía selecciona cada tercer elemento, pero comienza desde el 'menos primero'. En efecto, esto significa que seleccionará el segundo elemento de la lista, luego el quinto, y así sucesivamente:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones dos y cinco son rojos.

La sintaxis de

También puedes usar la palabra clave de seguido por un selector como argumento en el selector :nth-child(). Esta sintaxis le permite limitar los posibles elementos entre los que selecciona el patrón normal.

Por ejemplo, imagina que tu marcado es más complicado que el original:

 <ol> 
    <li class="old">Item 1</li>
    <li class="new">Item 2</li>
    <li class="new">Item 3</li>
    <li class="old">Item 4</li>
    <li class="new">Item 5</li>
    <li class="new">Item 6</li>
    <li class="new">Item 7</li>
</ol>

Ahora, use :nth-child para seleccionar los elementos pares del conjunto de aquellos con una clase específica:

 .new { 
    font-weight: bold;
}

li:nth-child(even of.new) {
    color: red;
}

Observe cómo sólo los elementos pares en negrita son rojos:

  Una lista numerada que muestra siete elementos. Los elementos en las posiciones tres y seis son rojos.

Considere también en qué se diferencia esto de li.new:nth-child(even) que apunta a elementos nuevos, pero sólo si son pares. Estos serían los elementos 2 y 6 en el ejemplo anterior.

Trabajar con el selector :nth-child()

Puede lograr diseños únicos utilizando el selector :nth-child(). Puede crear sitios web coloridos y resaltar filas y columnas en tablas de datos. Combinarlo con otros selectores de CSS te ayudará a crear diseños y diseños complejos.