HTML5: допустимые значения для идентификатора и атрибутов класса
Начиная с HTML5, единственные ограничения на значение идентификатора:
- должен быть уникальным в документе
- не должно содержать пробелов
- должен содержать хотя бы один символ
Аналогичные правила применяются к классам (за исключением, конечно, уникальности).
Таким образом, значение может состоять из всех цифр, только одна цифра, только знаки пунктуации, включая специальные символы, что угодно. Просто без пробелов. Это сильно отличается от HTML4.
В HTML 4 значения идентификаторов должны начинаться с буквы, за которой могут следовать только буквы, цифры, дефисы, подчеркивания, двоеточия и точки.
В HTML5 они действительны:
<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>
Помните, что использование цифр, знаков препинания или специальных символов в значении идентификатора может вызвать проблемы в других контекстах (например, CSS, JavaScript, regex).
Например, следующий код действителен в HTML5:
<div id="9lions"> ... </div>
Однако в CSS это недопустимо:
Из спецификации CSS2.1:
4.1.3 Символы и регистр
В CSS идентификаторы (включая имена элементов, классы и идентификаторы в
селекторы) могут содержать только символы [a-zA-Z0-9] и ISO 10646
символы U + 00A0 и выше, плюс дефис (-) и подчеркивание
(_); они не могут начинаться с цифры, двух дефисов или дефиса
сопровождаемый цифрой .
В большинстве случаев вы можете избегать символов в контекстах, где они имеют ограничения или особое значение.
W3C Ссылки
1058 * HTML5 *
3.2.5.1 id
атрибут
Атрибут id
указывает уникальный идентификатор (ID) своего элемента.
Значение должно быть уникальным среди всех идентификаторов в доме элемента
поддерево и должно содержать хотя бы один символ. Значение не должно
содержать любые пробелы.
Примечание: нет никаких других ограничений относительно того, какую форму может принимать ID; в
В частности, идентификаторы могут состоять только из цифр, начинаться с цифры, начинаться
с подчеркиванием, состоит только из пунктуации и т. д.
3.2.5.7 class
атрибут
Атрибут, если указан, должен иметь значение, которое представляет собой набор
разделенные пробелами токены, представляющие различные классы, которые
элемент принадлежит.
Классы, назначенные ему элементом HTML, состоят из всех
классы, возвращаемые, когда значение атрибута класса разделено на
пространства. (Дубликаты игнорируются.)
Нет никаких дополнительных ограничений на токены, которые авторы могут использовать в
атрибут класса, но авторам рекомендуется использовать значения, которые
описать характер контента, а не значения, которые описывают
желаемое представление контента.