Cosa sono i selettori CSS

Elenco e breve descrizione dei selettori CSS fino alla versione 3 (raccomandazione W3C aggiornata al 6/11/2018: Selectors Level 3).
immagine dell'autore dell'articolo

Scritto da: Alberto

Una vita nell'informatica, per lavoro e per passione.
agsdix-far fa-calendar-alt
Data pubblicazione: 18 Febbraio 2022
Categorie: CSS
agsdix-far fa-comments

Premessa

I selettori CSS permettono di determinare gli elementi HTML a cui deve essere applicato un certo gruppo di regole di stile.

Nel novembre 2018 il Consorzio W3C ha emesso la Raccomandazione Selectors Level 3 (di seguito CSS3). Non tutti i browser si sono adeguati prontamente alle innovazioni introdotte con questa raccomandazione. Per un elenco delle compatibilità tra browser e regole, vedere il sito https://caniuse.com/?search=css%20selectors.

Se si vuole che un documento HTML che utilizza selettori CSS3 sia accessibile anche per le versioni da 6 a 8 del browser Internet Explorer, è possibile implementare nel documento la libreria javascript selectivizr.

Tabella di sintesi

Nella tabella sotto riportata sono indicati:

  • Il nome o la categoria del selettore
  • l’indicatore di selettore introdotto con le specifiche CSS3
  • la sintassi del selettore
  • la specificità del selettore
  • una breve descrizione
Nomecss3Sintassi PesoDescrizione
Selettore universale*0Seleziona tutti gli elementi HTML presenti nel documento
Selettore di tipoE1Seleziona tutti gli elementi HTML di tipo E
(dove E rappresenta un qualunque elemento HTML: body, div, li, p, ecc.)
Selettori d’attributoE[att]10Seleziona gli elementi E che hanno un attributo att, indipendentemente dal valore assunto dall’attributo
E[att="val"]10Seleziona gli elementi E che hanno un attributo att esattamente uguale a “val”.
E[att~="val"]10Seleziona gli elementi E che hanno un attributo att il cui valore è dato da una lista di termini separati da spazi, di cui uno è esattamente uguale a “val” (es. class=”va  val valor”)
 E[att^="val"]10Seleziona gli elementi E che hanno un attributo att il cui valore inizia con il testo “val”
 E[att$="val"]10Seleziona gli elementi E che hanno un attributo att  il cui valore termina con il testo “val”
 E[att*="val"]10Seleziona gli elementi E che hanno un attributo att il cui valore contiene il testo “val” (es. “avvalorare”)
 E[att|="val"]10Seleziona gli elementi E che hanno un attributo att il cui valore è dato da una lista di termini tra i quali è è presente il testo “val”, oppure il testo “val” seguito da un trattino e ulteriore testo (“val-xxxx”)
Selettore Id#val100Seleziona l’elemento E il cui attributo id ha valore “val”.
Equivale a: E[id="val"]
Selettore Class.val10Seleziona gli elementi E il cui attributo class ha un valore che contiene uno o più termini, tra i quali è presente “val”. Equivale a: E[class~="val"]
Pseudo classiE:link10Seleziona gli elementi E  costituiti da link non ancora visitati
E:visited10Seleziona gli elementi E  costituiti da link già visitati
 E:enabled10Seleziona gli elementi E  abilitati
 E:disabled10Seleziona gli elementi E  disabilitati
 E:checked10Seleziona gli input radio o input checkbox spuntati
Pseudo classi dinamicheE:hover10Seleziona l’elemento E sul quale è posizionato il mouse
E:focus10Seleziona l’elemento E che riceve il focus
E:active10Seleziona l’elemento E su cui è stato fatto Click con il mouse
Pseudo classi strutturali:root10Seleziona l’elemento HTML, svolge la stessa funzione del selettore HTML, ma ha peso 10 invece che 1
E:first-child10Seleziona il primo elemento E tra i figli
 E:nth-child(an+b)10Seleziona l’elemento E figlio (an+b)esimo, partendo dal primo figlio
 E:nth-last-child(an+b)10Seleziona l’elemento E figlio (an+b)esimo, partendo dall’ultimo figlio
 E:nth-of-type(an+b)10Seleziona l’elemento E figlio (an+b)esimo, dal primo, dello stesso tipo
 E:nth-last-of-type(an+b)10Seleziona l’elemento E figlio (an+b)esimo, dall’ ultimo, dello stesso tipo
 E:last-child10Seleziona l’ultimo figlio E
 E:only-child10Seleziona l’unico figlio E
 E:first-of-type10Seleziona il primo figlio E, tra tutti i figli E
 E:last-of-type10Seleziona l’ultimo figlio E, tra tutti i figli E
 E:only-of-type10Seleziona l’unico figlio E, tra tutti i figli E
 E:empty10Seleziona tutti gli elementi E vuoti
(es. <p></p>)
 A:not(B)—Seleziona tutti gli elementi A, esclusi quelli corrispondenti al parametro B
Pseudo-elementi (1)E:first-line1Seleziona la prima riga di un testo
E:first-letter1Seleziona il primo carattere di un testo
E:before1Aggiunge contenuti prima
E:after1Aggiunge contenuti dopo
CombinatoriA BCombinatore di discendenza (descendant):
B contenuto in A, a qualsiasi sotto livello
A>BCombinatore figlio (child):
B direttamente contenuto in A
A+BCombinatore di adiacenza (next-sibling):
Seleziona gli elementi  B immediatamente successivi al fratello A
 A~BCombinatore di precedenza (subsequent sibling):
Seleziona gli elementi B successivi (anche non immediatamente) al fratello A
Gruppo di selettoriA, B, ...Seleziona tutti gli elementi A, tutti gli elementi B, ecc.

(1) Le specifiche CSS3 invitano ad usare la sintassi :: per differenziare pseudo-elementi da pseudo-classi. Tuttavia, poiché le versioni di Internet Explorer fino alla 8 compresa non supportato la sintassi ::  è preferibile usare quella con singolo carattere : per garantire la compatibilità anche con questi browser.

Risorse in rete

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *