CSS  »  Articoli  »  CSS 3 

I selettori combinatori nei CSS3

di: Simone D'Amico     06 Aprile 2010

Con questo articolo terminiamo la serie riguardante i selettori nella nuova specifica CSS. Gli articoli che compongono la serie sono i seguenti:

  1. I selettori di attributo nei CSS3
  2. Le pseudo-classi strutturali
  3. Altre pseudo-classi

I combinatori

I combinatori presenti nella specifica del CSS3 sono quattro:

  • Combinatore del discendente - Descendant
  • Combinatore del figlio - Child (>)
  • Combinatore dei fratelli adiacenti - Adiacent Siblings (+)
  • Combinatore generale dei fratelli - General Siblings (~)

Analizzamoli nel dettaglio e, come sempre, forniamo anche alcuni esempi per vederli all'opera.

Combinatore del discendente - Descendant

Il selettore discendente è sicuramente quello più famoso e utilizzato dei quattro. Non è presente solo nella specifica 3 ma anche nelle precedenti versioni ed è utilissimo per evitare il più possibile le classi per assegnare stile agli elementi. Il combinatore seleziona un elemento che è discendente di un altro elemento. Vediamo però un brevissimo esempio per capirne il funzionamento.

div#container p { text-align: justify; color: black; }

Il codice precedente serve ad assegnare lo stile solo ai paragrafi contenuti nel div#container, lasciando inalterata il resto della pagina.

Combinatore del figlio - Child

Il combinatore child (>) consente di raggiungere un elemento che è figlio diretto dell'elemento padre. Nel seguente esempio:

p > a { font-weight: bold; text-decoration: underline; }

lo stile verrà assegnato solo ai link che sono contenuti direttamente nel paragrafo.

Non sono stati forniti esempi pratici per i primi due combinatori perchè essi sono stati ampiamente trattati nella Guida CSS di base.

Combinatore dei fratelli adiacenti - Adiacent Siblings

I combinatori siblings (fratelli) servono a scorrere in orizzontale l'albero del DOM assegnando le proprietà agli elementi che si trovano allo stesso livello di un elemento.

Il primo è il selettore adiacente è "+" che consente di assegnare uno stile all'elemento fratello immediatamente adiacente. Dato un codice HTML come il seguente:

<div> 
  <h1>1. Questo è il titolo principale.</h1>
  <h2>1.1 Questo è il primo sottotitolo.</h2>
  <p>...</p>
  <h2>1.2 Questo è il secondo sottotitolo.</h2>
  <p>...</p>
</div>

Applicando la seguente proprietà

h1 + h2 { color: red; text-decoration: underline; }

verrà selezionato solo il primo <h2> dato che è immediatamente adiacente al tag <h1>. Vediamo l'esempio pratico all'opera.

Consideriamo, invece, il seguente codice HTML

<ul>
  <li>List Item 1</li>
  <li>List Item 2</li>
  <li>List Item 3</li>
  <li>List Item 4</li>
  <li>List Item 5</li>
</ul>

e la seguente proprietà CSS

li + li { margin-left: 10px; color: green: }

Cosa succederà? Il combinatore andrà a selezionare tutti quegli elementi che sono diretti fratelli del tag li e, scorrendo in orizzontale l'albero del DOM, solo il primo <li> non coinciderà con la proprietà.

Vediamo anche questo esempio in opera.

Guide CSS

Responsive Desing, la guida

Progettare siti da fruire su dispositivi diversi è imprescindibile...

Guida CSS3

Scoprire e usare al meglio tutte le novità dell'ultima versione dei...

Guida CSS Tecniche essenziali

Testo, immagini, layout, form, liste, tabelle: soluzioni pronte per...

Altre guide

Newsletter @CSS

Ogni mercoledì, direttamente nella tua e-mail: guide, articoli, tutorial, FAQ e approfondimenti tecnici su CSS e Web Design.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti