什么是HTML标识的实际最大长度?

HTML规范说

ID和NAME标记必须以字母([A-Za-z])开头,后面跟着任意数量的字母,数字([0-9]),连字符(“ – ”),下划线(“_”) ,冒号(“:”)和句点(“。”)。

即使HTML 4的SGML声明使用NAMELEN的值65536,它也会logging“避免固定限制”。

但是,浏览器,CSS实现和JavaScript工具包必须对它们所支持的长度有一些限制。 在HTML / CSS / JS应用程序中安全使用的最小限制是多less?

经过testing:每个现代浏览器都支持1M字符:Chrome1,FF3,IE7,Konqueror3,Opera9,Safari3。

我怀疑甚至更长的ID可能变得难以记住。

然而,对于我来说,一个实际的限制是,在我使用HTML / CSS的时候,我可以存储很长的ID。

这个限制通常在8到13个字符之间,这取决于我工作了多长时间,以及名称在元素的上下文中是否有意义。

有时我会得到很长的身份证,但我始终如一地命名他们以符合他们的确切目的。

例如…

<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 --> 

正如你所看到的,select器偶尔很长。 但是,这比使用YUI grids.css更容易,恕我直言,你最终得到了像#doc,#bd,#yui-main等ID。

如果这是一个学术问题,这是非常有趣的……但就最佳实践而言,你不应该需要或者不想要这些。 如果您需要存储有关HTML元素的数据,最好将其放入DOM对象的属性中。