HTML5: valori consentiti per attributi ID e classe
A partire da HTML5, le uniche restrizioni sul valore di un ID sono:
- deve essere unico nel documento
- non deve contenere alcuno spazio
- deve contenere almeno un carattere
Regole simili si applicano alle classi (ad eccezione dell'unicità, ovviamente).
Quindi il valore può essere composto da tutte le cifre, solo una cifra, solo caratteri di punteggiatura, inclusi caratteri speciali, qualunque cosa. Solo nessuno spazio bianco. Questo è molto diverso da HTML4.
In HTML 4, i valori ID devono iniziare con una lettera, che può essere seguita solo da lettere, cifre, trattini, caratteri di sottolineatura, due punti e punti.
In HTML5 sono validi:
<div id="999"> ... </div>
<div id="#%LV-||"> ... </div>
<div id="____V"> ... </div>
<div id="⌘⌥"> ... </div>
<div id="♥"> ... </div>
<div id="{}"> ... </div>
<div id="©"> ... </div>
<div id="♤₩¤☆€~¥"> ... </div>
Basta tenere presente che l'uso di numeri, punteggiatura o caratteri speciali nel valore di un ID può causare problemi in altri contesti (ad es. CSS, JavaScript, regex).
Ad esempio, il seguente ID è valido in HTML5:
<div id="9lions"> ... </div>
Tuttavia, non è valido nei CSS:
Dalle specifiche CSS2.1:
4.1.3 Personaggi e caso
Nel CSS, gli identificatori (inclusi nomi di elementi, classi e ID nei selettori) possono contenere solo i caratteri [a-zA-Z0-9] e ISO 10646 caratteri U + 00A0 e versioni successive, oltre il trattino (-) e il trattino basso ( _); non possono iniziare con una cifra, due trattini o un trattino seguito da una cifra .
Nella maggior parte dei casi potresti essere in grado di sfuggire ai personaggi in contesti in cui hanno restrizioni o significati speciali.
Riferimenti W3C
HTML5
3.2.5.1 L' id
attributo
L' id
attributo specifica l'identificatore univoco (ID) del suo elemento.
Il valore deve essere univoco tra tutti gli ID nella sottostruttura principale dell'elemento e deve contenere almeno un carattere. Il valore non deve contenere alcuno spazio.
Nota: non ci sono altre restrizioni su quale forma può assumere un ID; in particolare, gli ID possono consistere di sole cifre, iniziare con una cifra, iniziare con un carattere di sottolineatura, consistere solo di punteggiatura, ecc.
3.2.5.7 L' class
attributo
L'attributo, se specificato, deve avere un valore che è un insieme di token separati da spazio che rappresentano le varie classi a cui appartiene l'elemento.
Le classi che gli sono state assegnate da un elemento HTML sono costituite da tutte le classi restituite quando il valore dell'attributo class viene suddiviso in spazi. (I duplicati vengono ignorati.)
Non ci sono restrizioni aggiuntive sui token che gli autori possono usare nell'attributo class, ma gli autori sono incoraggiati a usare valori che descrivono la natura del contenuto, piuttosto che valori che descrivono la presentazione desiderata del contenuto.