Questa funzionalità CSS è particolarmente utile per stilizzare tabelle ed elenchi complessi.

Come tutti i selettori CSS, puoi utilizzare :nth-child() per identificare gli elementi in una pagina web e applicare loro degli stili. Ma questo selettore ti consente di restringere un insieme di fratelli in base alla loro posizione relativa.

Il selettore supporta alcune parole chiave di base per i casi comuni, ma fornisce anche una potente sintassi di corrispondenza dei modelli. Usandolo, puoi selezionare elementi in base a schemi regolari e ripetuti o definizioni più complesse, in base alle tue esigenze.

La sintassi del selettore :nth-child()

Come un Selettore pseudo-classe CSS, la sintassi :nth-child() differisce da quella degli altri selettori. Prende un argomento come modello per la corrispondenza degli elementi in un insieme di fratelli:

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

Il focus principale è sugli argomenti tra parentesi. Questi argomenti definiscono il sottoinsieme di elementi da selezionare.

Utilizzo dei valori delle parole chiave per i casi comuni

instagram viewer

Questo selettore può contenere due valori di parole chiave: strano E Anche. Sono particolarmente utili per stilizzazione di righe alternate in una tabella.

Un semplice elenco ordinato è un altro buon esempio di quando potresti utilizzare questi valori di parole chiave:

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

Usando il :ennesimo-bambino (dispari) selettore, puoi cambiare il colore di ciascun elemento alternativo:

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

Gli elementi iniziano dall'indice 1, quindi il primo elemento apparirà rosso, poi il terzo e così via:

Notazione funzionale per una maggiore flessibilità

Puoi utilizzare un singolo numero intero per selezionare un singolo elemento, in questo modo:

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

In questo caso, il selettore corrisponde solo al quarto elemento dell'elenco:

Questa sintassi è un caso speciale della sintassi funzionale più generale che seleziona gli elementi che corrispondono a un determinato modello. Questa sintassi è:

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

In questa notazione, UN è la dimensione del passo. Ciò significa il numero di volte in cui il selettore si sposta per selezionare l'elemento successivo. Ti consente di selezionare ogni altro elemento, ogni terzo elemento, ecc. B è il punto iniziale da cui inizia la selezione.

Ad esempio, prendiamo l'argomento 3n+1:

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

Ciò avvierà la selezione dal primo elemento e continuerà successivamente con ogni terzo elemento:

Confrontalo con l'espressione 3n+2:

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

Questo seleziona ancora ogni terzo elemento, ma ora inizia dal secondo elemento nell'elenco:

Un altro esempio interessante è :nth-child (n+3):

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

Questo selezionerà ogni voce (n), a partire dalla terza (+3). Apparirà così:

Puoi anche utilizzare la sottrazione per ottenere determinati risultati:

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

In questo esempio viene ancora selezionato un elemento ogni tre, ma si inizia dal “meno prima”. In effetti, ciò significa che selezionerà il secondo elemento dell'elenco, poi il quinto e così via:

Il di Sintassi

Puoi anche usare la parola chiave Di seguito da a selettore come argomento nel selettore :nth-child(). Questa sintassi ti consente di restringere i possibili elementi da cui seleziona il modello regolare.

Ad esempio, immagina che il tuo markup sia più complicato dell'originale:

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

Ora usa :nth-child per selezionare gli elementi pari dall'insieme di quelli con una classe specifica:

.new {
font-weight: bold;
}

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

Nota come solo gli elementi in grassetto con numeri pari sono rossi:

Considera anche in cosa differisce da li.new: nth-child (pari) che prende di mira .new elementi, ma solo se sono pari. Questi sarebbero gli elementi 2 e 6 nell'esempio precedente.

Lavorare con il selettore :nth-child()

Puoi ottenere design unici utilizzando il selettore :nth-child(). Puoi creare siti Web colorati ed evidenziare righe e colonne nelle tabelle di dati. Combinandolo con altri selettori CSS ti aiuterà a creare layout e design complessi.