Какова практическая максимальная длина для идентификатора HTML? - PullRequest
77 голосов
/ 25 февраля 2009

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

Жетоны ID и ИМЯ должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисов ("- "), подчеркивания (" _ "), двоеточия (": ") и точки (". ").

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

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

Ответы [ 4 ]

194 голосов
/ 25 февраля 2009

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

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

14 голосов
/ 25 февраля 2009

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

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

1 голос
/ 25 февраля 2009

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

Например ...

<div id="page">
    <div id="primary-content"></div>
    <div id="secondary-content"></div>
    <div id="search-form-and-primary-nav-wrapper">
        <form id="search-form"></form>
        <ul id="primary-nav">
            <li id="primary-nav-about-us"></li>
        </ul>
    </div>
    <a id="logo"><img /></a>
</div><!-- /#page -->

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

0 голосов
/ 25 февраля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...