admin管理员组文章数量:1134598
The HTML spec says
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
And even though the SGML declaration of HTML 4 uses the value 65536 for NAMELEN, it notes "Avoid fixed limits."
But surely browsers, CSS implementations, and JavaScript toolkits must have some limits on the length they support. What is the smallest such limit that is safe to use in a HTML/CSS/JS application?
The HTML spec says
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
And even though the SGML declaration of HTML 4 uses the value 65536 for NAMELEN, it notes "Avoid fixed limits."
But surely browsers, CSS implementations, and JavaScript toolkits must have some limits on the length they support. What is the smallest such limit that is safe to use in a HTML/CSS/JS application?
Share Improve this question asked Feb 24, 2009 at 23:53 system PAUSEsystem PAUSE 38.5k21 gold badges64 silver badges59 bronze badges 1- 4 Thank-you and +1 for pointing out that IDs must start with a letter. I've used IDs such as '1','2','3','4','5' in past without issue. I do alot of survey related widgets and interactive elements and using the IDS like this made for a convenient 'score' attribute as well as ID reference. Today I was trying to get some CSS working that really should have worked. I even ran it past the W3C validator and it didn't alert me to this issue... But this post did. And now when I changed id='5' to 'x5x' the css works... Now I just have to change the scoring subroutine to strip the x's! Thx again. – Ben A. Hilleli Commented Nov 14, 2014 at 18:42
4 Answers
Reset to default 249Just tested: 1M characters works on every modern browser: Chrome1, FF3, IE7, Konqueror3, Opera9, Safari3.
I suspect even longer IDs could become hard to remember.
A practical limit, for me, is however long an ID I can store in my head during the time I'm working with the HTML/CSS.
This limit is usually between 8 and 13 characters, depending on how long I've been working and if the names make sense in the context of the element.
Sometimes I will end up with very long IDs, but I name them consistently to match their exact purpose.
For example...
<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 -->
As you can see, the selectors are occasionally pretty long. But it's so much easier IMHO than working with something like the YUI grids.css where you end up with IDs like #doc, #bd, #yui-main, etc.
If this is an academic question, it's pretty interesting... but as far as best practices are concerned, you shouldn't need to -- or want to -- stretch these out. If you need to store data about an HTML element, it's better to put it into an attribute on the DOM object.
本文标签: javascriptWhat is a practical maximum length for HTML idStack Overflow
版权声明:本文标题:javascript - What is a practical maximum length for HTML id? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736843507a1955201.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论