Puoi controllare direttamente nella grammatica CSS .
Fondamentalmente 1 , un nome deve iniziare con un trattino basso ( _
), un trattino ( -
) o una lettera ( a
- z
), seguito da un numero qualsiasi di trattini, caratteri di sottolineatura, lettere o numeri. C'è un problema: se il primo carattere è un trattino, il secondo personaggio deve 2 essere una lettera o di sottolineatura e il nome deve essere di almeno 2 caratteri.
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
In breve, la regola precedente si traduce in quella seguente, estratta dalle specifiche del W3C. :
Nel CSS, gli identificatori (inclusi nomi di elementi, classi e ID nei selettori) possono contenere solo i caratteri [a-z0-9] e ISO 10646 caratteri U + 00A1 e versioni successive, più il trattino (-) e il trattino basso (_) ; non possono iniziare con una cifra o un trattino seguito da una cifra. Gli identificatori possono anche contenere caratteri di escape e qualsiasi carattere ISO 10646 come codice numerico (vedere l'elemento successivo). Ad esempio, l'identificatore "B&W?" può essere scritto come "B \ & W \?" o "B \ 26 W \ 3F".
Gli identificatori che iniziano con un trattino o un trattino basso sono in genere riservati alle estensioni specifiche del browser, come in -moz-opacity
.
1 Tutto è reso un po 'più complicato dall'inclusione di caratteri unicode sfuggiti (che nessuno usa davvero).
2 Si noti che, secondo la grammatica che ho collegato, una regola che inizia con DUE trattini, ad esempio --indent1
, non è valida. Tuttavia, sono abbastanza sicuro di averlo visto in pratica.