Le precedenti specifiche dei CSS prevedono quattro pseudo-elementi:
:first-letter
: seleziona e formatta la prima lettera del testo contenuto in un elemento (paragrafo, div, etc...);:first-line
: seleziona e formatta la prima riga del testo contenuto in un elemento (paragrafo, div, etc...);:before
: genera e inserisce del contenuto prima di un dato elemento;:after
: genera e inserisce del contenuto dopo un dato elemento.
La specifica CSS3 non ha introdotto novità rispetto al numero di pseudo-elementi, salvo che per uno pseudo-elemento :selection
che dovrebbe servire a formattare in modi specifici il testo presente in una pagina quando viene selezionato dall'utente. Al momento, però, pur essendo supportato da diversi browser, :selection
è stato rimosso dal modulo.
Una novità riguarda invece la sintassi. A partire dai CSS3, uno pseudo-elemento si definisce usando due segni di due punti (::) invece che uno solo. Ciò per distinguere nella sintassi gli pseudo-elementi dalle pseudo-classi. Per mantenere la retro-compatibilità con il codice esistente, i browser sono tenuti a supportare entrambe le sintassi. Rispettando dunque quanto fissato nella specifica dovremmo scrivere:
::first-letter
::first-line
::before
::after
Per il resto rimangono valide tutte le considerazioni e gli esempi della Guida CSS di base.
Gli pseudo-elementi sono supportati, salvo qualche dettaglio nell'implementazione avanzata di ::before
e ::after
, da tutti i principali browser.