HTML id的实际最大长度是多少?

sys*_*USE 81 html javascript css

HTML规范

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(" - "),下划线("_") ,冒号(":")和句号(".").

即使HTML 4 的SGML声明对NAMELEN使用值65536,它也注意到"避免固定限制".

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

phi*_*hag 201

刚测试:每个现代浏览器都可以使用1M个字符:Chrome1,FF3,IE7,Konqueror3,Opera9,Safari3.

我怀疑更长的身份证会变得难以记住.

  • "我怀疑更长的身份证会变得难以记住." - 大声笑! (125认同)
  • 这家伙已经完成了10个"百万"角色!http://stackoverflow.com/a/1496150/74585 (15认同)
  • @phihag当我在多伦多学习CS时,讲师打趣说:“每个人当然都知道为什么在1582年10月的公历中会缺少10天”,我不得不问一位同事,他谦虚地看着我说:由于采用了公历,所以,您从未上过小学吗?” 我没有 不在加拿大。我上了埃及的小学,然后学习了伊斯兰日历。SI前缀也一样:您可能受益于西方教育,但我没有。但是,尽管如此,还是要感谢您的崇高态度。 (4认同)
  • @beliha 很确定,至少在葡萄牙,我从未听说过公历 1582 年 10 月缺少 10 天,而且我猜我不是唯一一个。据我所知,我认为学校从未教过这一点,所以任何人都可以大胆地期望每个人都知道这一点。 (3认同)
  • 抱歉。1M?比如100万? (2认同)
  • @beliha我去了西方学校,甚至不知道我们使用公历(至少不是这个名字),我们只是使用标准日历术语。关于这10天的失踪,我是从youtube上了解到的。 (2认同)

Nic*_*sta 14

对我来说,一个实际的限制是,在我使用HTML/CSS的过程中,我可以存储的ID很长.

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

  • 这个问题仍然非常重要,因为对于RIA,ID通常是由代码生成的,并且为了独特,可能很长; 举个例子:window_2_panel_12_group_6_label_2 _... (11认同)
  • 我想补充说,如果需要,可以使用前缀扩展一个"内部缓冲区".:-) (4认同)
  • 很高兴给出这个智慧,但具有讽刺意味的是,谷歌出于某种原因将其作为“官方”答案,并突出显示“8到13个字符”作为限制。 (2认同)

Mar*_*urd 7

有时我会得到很长的 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 -->
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,选择器有时会很长。但恕我直言,它比使用 YUI grids.css 之类的东西要容易得多,在 YUI grids.css 中你最终会得到像 #doc、#bd、#yui-main 等 ID。

  • 我经常做的就是按照继承方式命名它们,所以有一个 div id='user',然后在其中我可能有三个 div,id='user-stats'、id='user-inventory'、id='user-咒语”,然后说在用户统计中我可能有 5 个 div,id='user-stats-strength', id='user-stats-agility', id='user-stats-defence', id='user- stats-intellect'、id='user-stats-heath' 等等,我发现这些对于记住他们的 id 非常有用,只要我保持命名约定,即 - 或 _ 表示空格或驼峰命名法。 (3认同)