Какова максимальная максимальная длина для идентификатора HTML?

Спецификация HTML говорит

Идентификаторы ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое количество букв, цифр ([0-9]), дефис («-»), подчеркивание («_») , colons (“:”) и периоды (“.”).

И хотя SGML-декларация HTML 4 использует значение 65536 для NAMELEN, она отмечает «Избегайте фиксированных пределов».

Но, безусловно, браузеры, реализации CSS и инструментарий JavaScript должны иметь определенные ограничения на длину, которую они поддерживают. Каков самый маленький такой предел, который можно безопасно использовать в приложении HTML / CSS / JS?

Только что протестировано: 1M персонажей работает на каждом современном браузере: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3.

Я подозреваю, что даже более длинные идентификаторы могут быть трудно запоминать.

Практический предел для меня, однако, длинный идентификатор, который я могу хранить в голове во время работы с HTML / CSS.

Это ограничение обычно составляет от 8 до 13 символов, в зависимости от того, как долго я работаю, и если имена имеют смысл в контексте элемента.

Иногда я получаю очень длинные идентификаторы, но я назову их последовательно, чтобы соответствовать их точной цели.

Например…

Как вы можете видеть, селектора иногда довольно длинны. Но это намного проще ИМХО, чем работа с чем-то вроде YUI grids.css, где вы получаете идентификаторы, такие как #doc, #bd, # yui-main и т. Д.

Если это академический вопрос, это довольно интересно … но что касается лучших практик, вам не нужно – или не хотеть – растягивать их. Если вам нужно хранить данные об элементе HTML, лучше поместить его в атрибут объекта DOM.