Możesz to sprawdzić bezpośrednio w gramatyce CSS .
Zasadniczo 1 , nazwa musi zaczynać się znakiem podkreślenia ( _
), łącznikiem ( -
) lub literą ( a
- z
), po której następuje dowolna liczba myślników, znaków podkreślenia, liter lub cyfr. Istnieje pewien haczyk: jeśli pierwszy znak jest łącznikiem, drugi znak musi mieć 2 litery lub znak podkreślenia, a nazwa musi mieć co najmniej 2 znaki.
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
Krótko mówiąc, poprzednia reguła przekłada się na następujące, wyodrębnione ze specyfikacji W3C. :
W CSS identyfikatory (w tym nazwy elementów, klasy i identyfikatory w selektorach) mogą zawierać tylko znaki [a-z0-9] i ISO 10646 znaków U + 00A1 i wyższe, a także łącznik (-) i podkreślenie (_) ; nie mogą zaczynać się cyfrą ani myślnikiem, po którym następuje cyfra. Identyfikatory mogą także zawierać znaki zmiany znaczenia i dowolny znak ISO 10646 jako kod numeryczny (patrz następny punkt). Na przykład identyfikator „B&W?” może być zapisane jako „B \ & W \?” lub „B \ 26 W \ 3F”.
Identyfikatory zaczynające się od łącznika lub podkreślenia są zwykle zarezerwowane dla rozszerzeń specyficznych dla przeglądarki, jak w -moz-opacity
.
1 Wszystko to jest nieco bardziej skomplikowane przez włączenie znaków ucieczki Unicode (których tak naprawdę nikt nie używa).
2 Zauważ, że zgodnie z gramatyką, którą podłączyłem, reguła zaczynająca się od DWÓCH łączników, np. --indent1
, Jest nieprawidłowa. Jestem jednak pewien, że widziałem to w praktyce.