Selettore CSS nth-child: odd, even e formule con esempi

Oggi torniamo sulle basi del CSS. Nei miei articoli uso spesso i selettori CSS nth-child, e questo mi ha fatto capire che non ne ho mai davvero ripreso le basi. nth-child è una pseudo-classe CSS che permette di selezionare gli elementi: vediamo tutto quello che questo potente selettore sa fare.

Selettore CSS nth-child: odd, even e formule con esempi

Oggi torniamo sulle basi del CSS. Tendo a usare i selettori CSS nth-child nei miei articoli.

E questo mi ha fatto capire che non ho mai davvero ripreso le basi dei selettori css nth-child. nth-child è una pseudo-classe CSS che permette di selezionare gli elementi.

Oggi esploriamo le possibilità di questo potente selettore CSS con qualche esempio.

Partiamo da qualche selettore css nth-child di base:

Possiamo indicare il numero dell’elemento che vogliamo selezionare. Diciamo che vogliamo il terzo elemento della lista.

css
.article-list li:nth-child(3) {
    	color: green;
}
html
<ul class="article-list">
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
	<li>Item 4</li>
	<li>Item 5</li>
</ul>

Il risultato è che solo il terzo elemento diventa verde

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Il selettore odd/even

Possiamo selezionare tutti gli elementi di posizione pari o dispari con odd ed even.

css
.article-list-odd li:nth-child(odd) {
    	color: green;
}
html
<ul class="article-list-odd">
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
	<li>Item 4</li>
	<li>Item 5</li>
</ul>

Il risultato è che vengono selezionati solo gli elementi dispari:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

e nth-child(even) per i risultati pari:

css
.article-list-even li:nth-child(even) {
    	color: red;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Ogni X elementi

Con il selettore nth-child, possiamo anche selezionare un elemento ogni x. Diciamo, per esempio, che vogliamo prendere ogni quarto elemento:

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

Ora viene selezionato ogni quarto elemento figlio:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
css
... li:nth-child(4n+1) {
	color: red;
}

E se vogliamo includere il primo elemento:

  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9

Oppure il secondo:

css
... li:nth-child(4n+2) {
	color: red;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10

Selezionare i primi x elementi

Possiamo perfino usare un selettore che prende tutti i tag tranne i primi tre elementi.

css
... li:nth-child(n+4) {
	color: red;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10

Selezionare tutti gli elementi tranne i primi x

Possiamo perfino usare un selettore che prende tutti i tag tranne i primi tre elementi.

css
... li:nth-child(n+4) {
	color: red;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7
  • Item 8
  • Item 9
  • Item 10

Selezionare il primo o l’ultimo elemento

Possiamo anche selezionare il primo o l’ultimo elemento con :first-child e :last-child

css
... li:first-child {
	color: red;
}
... li:last-child {
	color: blue;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 1
  • Item 2
  • Item 3

Con lo stesso principio possiamo spostarci indietro e prendere il penultimo elemento della lista.

css
li:nth-last-child(2) {
	color: red;
}
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Combinare i selettori

I selettori nth-child si possono anche combinare!

Diciamo che vuoi prendere tutti gli elementi pari dentro le liste di posizione dispari.

css
ul:nth-child(odd) li:nth-child(even) {
	color: red;
}
html
<ul>
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
	<li>Item 4</li>
	<li>Item 5</li>
</ul>
<ul>
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
	<li>Item 4</li>
	<li>Item 5</li>
</ul>
<ul>
	<li>Item 1</li>
	<li>Item 2</li>
	<li>Item 3</li>
	<li>Item 4</li>
	<li>Item 5</li>
</ul>
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Conclusione

Spero che questo articolo ti sia utile quando integri i tuoi siti con la pseudo-classe nth-child. Se vuoi vedere quali altre pseudo-classi css esistono, dai un’occhiata a questi articoli:

CSS

Damien Flandrin Sviluppatore web dal 2010, creatore di Gekkode e di Email Impact. Ogni articolo è testato su un progetto reale prima della pubblicazione. Contatti
Newsletter

I nuovi test, tutorial e progetti, via e-mail.

Test riproducibili, codice versionato, risultati datati. Mai spam.