ID和名称标记必须以字母开头([A-ZA-Z]),并且可以随后 任意数量的字母,数字([0-9]),连字符( “ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。
即使HTML 4的SGML declaration对NAMELEN使用值65536,它也会记录“避免固定限制”。
但是肯定浏览器,CSS实现和JavaScript工具包必须有一些它们支持的长度限制。什么是在HTML/CSS/JS应用程序中安全使用的最小限制?
ID和名称标记必须以字母开头([A-ZA-Z]),并且可以随后 任意数量的字母,数字([0-9]),连字符( “ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。
即使HTML 4的SGML declaration对NAMELEN使用值65536,它也会记录“避免固定限制”。
但是肯定浏览器,CSS实现和JavaScript工具包必须有一些它们支持的长度限制。什么是在HTML/CSS/JS应用程序中安全使用的最小限制?
刚刚测试过:1M字符适用于各种现代浏览器:Chrome1,FF3,IE7,Konqueror3,Opera9,Safari3。
我怀疑甚至更长的ID可能变得很难记住。
如果这是一个学术问题,这是非常有趣的......但就最佳实践而言,您不应该需要 - 或者想 - 伸出这些。如果您需要存储有关HTML元素的数据,最好将其放入DOM对象的属性中。
然而,对于我来说,一个实际的限制是在我使用HTML/CSS的时候,我可以存储在自己脑海中的一个ID。
此限制通常在8到13个字符之间,具体取决于我工作了多久,以及名称在元素上下文中是否有意义。
我会补充说,如果需要,可以使用前缀扩展一个“内部缓冲区”。 :-) – 2009-02-25 00:30:58
这当然是可以的。 :) – 2009-02-25 00:33:06
这个问题仍然非常重要,因为在RIA中,代码通常会生成ID,并且为了保持唯一性,可能会很长;作为一个例子:window_2_panel_12_group_6_label_2 _... – Josh 2009-10-30 13:12:44
有时我最终会得到很长的ID,但我一致地命名它们以符合它们的确切目的。
例如...
<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 -->
正如你可以看到,选择偶尔很长。但是,这比使用像YUI grids.css这样的工具更容易,恕我直言,你最终会得到像#doc,#bd,#yui-main等ID。
感谢你和+1指出了ID必须以字母开头。我在过去没有问题时使用了诸如'1','2','3','4','5'等ID。我做了很多与调查相关的小部件和交互元素,并使用这样的IDS来创建一个方便的“分数”属性以及ID参考。今天我试图让一些真正应该工作的CSS工作。我甚至跑过W3C的验证器,它没有提醒我这个问题......但是这篇文章的确如此。现在,当我将id ='5'更改为'x5x'时,css可以正常工作......现在,我只需要更改评分子程序以剥离x! Thx再次。 – 2014-11-14 18:42:48