Как и в случае с HTML5, единственными ограничениями на значение идентификатора являются:
. Аналогичные правила применяются к классам (за исключением уникальности, конечно).
So значение может быть все цифры, всего одна цифра, только знаки пунктуации, включают специальные символы, что угодно. Просто нет пробелов. Это очень отличается от HTML4.
В HTML 4 значения идентификатора должны начинаться с буквы, которая затем может следовать только буквами, цифрами, дефисами, символами подчеркивания, двоеточиями и периодами.
В HTML5 они действительны:
...
...
...
...
...
...
...
...
Просто имейте в виду, что использование чисел, знаков препинания или специальных символов в значении идентификатора может вызвать проблемы в других контекстах (например, CSS, JavaScript, регулярное выражение ).
Например, в HTML5 допустим следующий идентификатор:
...
Однако это недействительно в CSS:
Из спецификации CSS2.1:
В CSS, идентификаторы (включая имена элементов, классы и идентификаторы в селекторах) могут содержать только символы [a-zA-Z0-9] и символы ISO 10646 U + 00A0 и выше, плюс дефис (-) и подчеркивание (_); они не могут начинаться с цифры, двух дефисов или дефиса, за которым следует цифра .
В большинстве случаев вы можете избежать символов в контекстах, где они имеют ограничения или особое значение.
Ссылки W3C
HTML5
Атрибут
id
указывает уникальный идентификатор его элемента (ID).Значение должно быть уникальным среди всех идентификаторов в домашнем поддереве элемента и должно содержать хотя бы один символ. Значение не должно содержать пробелов.
Примечание. Нет никаких других ограничений на то, какую форму может принимать идентификатор; в частности, идентификаторы могут состоять из простых цифр, начинаться с цифры, начинаться с подчеркивания, состоять только из знаков пунктуации и т. д.
Атрибут, если он указан, должен иметь значение, которое представляет собой набор разделенных пространством токенов, представляющих различные классы, к которым принадлежит этот элемент.
Классы, которым присвоен элемент HTML к нему относятся все классы, возвращаемые, когда значение атрибута класса разбивается на пробелы. (Дубликаты игнорируются.)
Нет никаких дополнительных ограничений на то, что авторы токенов могут использовать в атрибуте class, но авторам рекомендуется использовать значения, которые описывают природу контента, а не значения, которые описывают желаемое представление содержимого.