Sie können direkt in der CSS-Grammatik überprüfen .
Grundsätzlich 1 muss ein Name mit einem Unterstrich (beginnen _
), einen Bindestrich ( -
) oder einen Brief ( a
- z
), gefolgt von einer beliebigen Anzahl von Bindestrichen, Unterstrichen, Buchstaben oder Zahlen. Es gibt einen Haken: Wenn das erste Zeichen ein Bindestrich ist, muss das zweite Zeichen 2 ein Buchstabe oder ein Unterstrich sein und der Name muss mindestens 2 Zeichen lang sein.
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
Kurz gesagt, die vorherige Regel wird wie folgt übersetzt und aus der W3C-Spezifikation extrahiert . ::
In CSS können Bezeichner (einschließlich Elementnamen, Klassen und IDs in Selektoren) nur die Zeichen [a-z0-9] und ISO 10646-Zeichen U + 00A1 und höher sowie den Bindestrich (-) und den Unterstrich (_) enthalten. ;; Sie können nicht mit einer Ziffer oder einem Bindestrich gefolgt von einer Ziffer beginnen. Bezeichner können auch maskierte Zeichen und jedes ISO 10646-Zeichen als numerischen Code enthalten (siehe nächster Punkt). Zum Beispiel die Kennung "B & W?" kann geschrieben werden als "B \ & W \?" oder "B \ 26 W \ 3F".
Bezeichner, die mit einem Bindestrich oder Unterstrich beginnen, sind normalerweise für browserspezifische Erweiterungen reserviert, wie in -moz-opacity
.
1 Durch die Aufnahme von maskierten Unicode-Zeichen (die niemand wirklich verwendet) wird alles etwas komplizierter.
2 Beachten Sie, dass gemäß der von mir verknüpften Grammatik eine Regel, die mit ZWEI Bindestrichen beginnt, z --indent1
. B. ungültig ist. Ich bin mir jedoch ziemlich sicher, dass ich dies in der Praxis gesehen habe.