2009-02-24 67 views
67

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

ID和名称标记必须以字母开头([A-ZA-Z]),并且可以随后 任意数量的字母,数字([0-9]),连字符( “ - ”),下划线(“_”),冒号(“:”)和句点(“。”)。

即使HTML 4的SGML declaration对NAMELEN使用值65536,它也会记录“避免固定限制”。

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

+2

感谢你和+1指出了ID必须以字母开头。我在过去没有问题时使用了诸如'1','2','3','4','5'等ID。我做了很多与调查相关的小部件和交互元素,并使用这样的IDS来创建一个方便的“分数”属性以及ID参考。今天我试图让一些真正应该工作的CSS工作。我甚至跑过W3C的验证器,它没有提醒我这个问题......但是这篇文章的确如此。现在,当我将id ='5'更改为'x5x'时,css可以正常工作......现在,我只需要更改评分子程序以剥离x! Thx再次。 – 2014-11-14 18:42:48

回答

170

刚刚测试过:1M字符适用于各种现代浏览器:Chrome1,FF3,IE7,Konqueror3,Opera9,Safari3。

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

0

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

13

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

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

+4

我会补充说,如果需要,可以使用前缀扩展一个“内部缓冲区”。 :-) – 2009-02-25 00:30:58

+0

这当然是可以的。 :) – 2009-02-25 00:33:06

+9

这个问题仍然非常重要,因为在RIA中,代码通常会生成ID,并且为了保持唯一性,可能会很长;作为一个例子:window_2_panel_12_group_6_label_2 _... – Josh 2009-10-30 13:12:44

1

有时我最终会得到很长的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。

相关问题