HTML5: Zulässige Werte für ID- und Klassenattribute
Ab HTML5 sind die einzigen Einschränkungen für den Wert einer ID:
- muss im Dokument eindeutig sein
- darf keine Leerzeichen enthalten
- muss mindestens ein Zeichen enthalten
Ähnliche Regeln gelten für Klassen (mit Ausnahme der Einzigartigkeit natürlich).
Der Wert kann also aus allen Ziffern bestehen, nur aus einer Ziffer, nur aus Satzzeichen und Sonderzeichen. Nur kein Leerzeichen. Dies unterscheidet sich stark von HTML4.
In HTML 4 müssen ID-Werte mit einem Buchstaben beginnen, auf den nur Buchstaben, Ziffern, Bindestriche, Unterstriche, Doppelpunkte und Punkte folgen können.
In HTML5 sind diese gültig:
<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>
Denken Sie daran, dass die Verwendung von Zahlen, Satzzeichen oder Sonderzeichen im Wert einer ID in anderen Kontexten (z. B. CSS, JavaScript, Regex) zu Problemen führen kann.
Beispielsweise ist die folgende ID in HTML5 gültig:
<div id="9lions"> ... </div>
In CSS ist es jedoch ungültig:
Aus der CSS2.1-Spezifikation:
4.1.3 Zeichen und Fall
In CSS dürfen Bezeichner (einschließlich Elementnamen, Klassen und IDs in Selektoren) nur die Zeichen [a-zA-Z0-9] und ISO 10646-Zeichen U + 00A0 und höher sowie den Bindestrich (-) und den Unterstrich (enthalten) enthalten. _); Sie können nicht mit einer Ziffer, zwei Bindestrichen oder einem Bindestrich gefolgt von einer Ziffer beginnen .
In den meisten Fällen können Sie Zeichen in Kontexten entkommen, in denen sie Einschränkungen oder eine besondere Bedeutung haben.
W3C-Referenzen
HTML5
3.2.5.1 Das id
Attribut
Das id
Attribut gibt die eindeutige ID (ID) des Elements an.
Der Wert muss unter allen IDs im Home-Teilbaum des Elements eindeutig sein und mindestens ein Zeichen enthalten. Der Wert darf keine Leerzeichen enthalten.
Hinweis: Es gibt keine weiteren Einschränkungen hinsichtlich der Form einer ID. Insbesondere können IDs nur aus Ziffern bestehen, mit einer Ziffer beginnen, mit einem Unterstrich beginnen, nur aus Interpunktion bestehen usw.
3.2.5.7 Das class
Attribut
Das Attribut muss, falls angegeben, einen Wert haben, bei dem es sich um eine Reihe von durch Leerzeichen getrennten Token handelt, die die verschiedenen Klassen darstellen, zu denen das Element gehört.
Die Klassen, die ein HTML-Element ihm zugewiesen hat, bestehen aus allen Klassen, die zurückgegeben werden, wenn der Wert des Klassenattributs auf Leerzeichen aufgeteilt wird. (Duplikate werden ignoriert.)
Es gibt keine zusätzlichen Einschränkungen für die Token, die Autoren im Klassenattribut verwenden können. Autoren werden jedoch aufgefordert, Werte zu verwenden, die die Art des Inhalts beschreiben, anstatt Werte, die die gewünschte Darstellung des Inhalts beschreiben.