Возможный дубликат:
Какие допустимые значения для атрибута id в HTML?
Подчеркивания кажутся прекрасными. Как насчет тире? Другие специальные символы?
Возможный дубликат:
Какие допустимые значения для атрибута id в HTML?
Подчеркивания кажутся прекрасными. Как насчет тире? Другие специальные символы?
На самом деле существует разница между HTML и XHTML. Поскольку XHTML является XML, применяются правила для XML-идентификаторов:
Значения идентификатора типа ДОЛЖНЫ совпадать с производством Name.
NameStartChar ::= ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] NameChar ::= NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]
Источник: Расширяемый язык разметки (XML) 1.0 (пятое издание) 2.3
Для HTML применяется следующее:
id = name [CS]
Этот атрибут присваивает имя элементу. Это имя должно быть уникальным в документе.Идентификаторы идентификатора и NAME должны начинаться с письмо ([A-Za-z]) и может быть выполнено любым количеством букв, цифр ([0-9]), дефис (" - "), подчеркивание (" _ "), двоеточия (": ") и периоды (" ").
Источник: Спецификация HTML 4, глава 6, токен идентификатора
Спецификация W3C Основные типы данных HTML говорит, что токены ID и NAME должны начинаться с буквы ([A-Za-z]) и может следовать любое количество букв, цифр ([0-9]), дефис ( "-" ), подчеркивание ( "_
" ), двоеточия ( ":" ) и периоды ( "." ) ".
Если мы берем название вашего вопроса буквально, то не применяются ни правила HTML, ни правила XHTML. Вместо этого соответствующий spec является DOM.
Принимая DOM Level 3 как наш источник и предполагая, что под "DOM ID" вы подразумеваете атрибут с установленным флагом "ID", тогда это значение "DOMString", символами которого могут быть любые UTF-16 кодируемый символ.
16-разрядная единица
Базовый блок DOMString. Это указывает на то, что индексирование на DOMString происходит в единицах 16 бит. Это должно не следует понимать неправильно, чтобы DOMString может хранить произвольные 16-битные единицы. DOMString - символ строка, закодированная в UTF-16; это означает что ограничения UTF-16 как а также другие соответствующие ограничения на символьные строки должны поддерживаться. Один символ для пример в виде числового символьная ссылка, может соответствовать один или два 16-битных блока.
Конечно, это, вероятно, не то, что вы хотите, и что ответ Людвига Вайнцьера - это то, что вы искали. Однако разумно понять, что не все DOM могут быть сериализованы как HTML или XHTML и что DOM имеет собственный набор правил.
В соответствии со спецификациями HTML 4.0
Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис ( "-" ), подчеркивание ( "_" ), двоеточие ( ":" ) и периоды ( "." ).
Для правильного html aka xhtml, Филипп прав. Нет пробелов или специальных символов (конечно, не требующих экранирования) для атрибутов id. Только 52-символьный алфавит, верхний и нижний регистр, цифры 0-9, дефисы ( "-" ), подчеркивания ( "_" ), двоеточия ( ":" ) и периоды ( "." )