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

Javascript HTML id的实际最大长度是多少?,javascript,html,css,Javascript,Html,Css,警察说 ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(.”)。 尽管HTML4的函数使用了NAMELEN的值65536,但它指出“避免固定限制” 但毫无疑问,浏览器、CSS实现和JavaScript工具包必须对其支持的长度有一定的限制。在HTML/CSS/JS应用程序中安全使用的最小限制是什么?如果这是一个学术问题,那么它非常有趣。。。但就最佳实践而言,您不需要——或者不想——扩展这些。如果需要

警察说

ID和名称标记必须以字母([a-Za-z])开头,后面可以是任意数量的字母、数字([0-9])、连字符(“-”)、下划线(“)、冒号(:”)和句点(.”)。 尽管HTML4的函数使用了NAMELEN的值65536,但它指出“避免固定限制”


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

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

对我来说,实际限制是在处理HTML/CSS时,我可以在头脑中存储的ID的长度


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

刚刚测试:1M字符适用于所有现代浏览器:Chrome1、FF3、IE7、Konqueror3、Opera9、Safari3


我怀疑更长的ID可能会变得难以记忆。

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


如您所见,选择器有时相当长。但是IMHO比使用YUI grids.css这样的东西要容易得多,在这里,你可以使用诸如#doc、#bd、#YUI main等ID。

我想补充一点,如果必要的话,可以使用前缀扩展一个人的“内部缓冲区”。:-)这个问题仍然非常重要,因为在RIA中,ID通常是由代码生成的,为了唯一,可能需要很长的时间;举个例子:window_2_panel_12_group_6_label_2_…我经常做的是给他们命名继承人,所以有一个div id='user',然后在其中我可能有三个div,id='user-stats',id='user-inventory',id='user-spells',然后说在用户统计中我可能有5个div id='user-stats-strength',id='user-stats-agility',id='user-stats-defense',id='user-stats-intelligent',id='user-stats-heath'等等,我发现只要我保持命名约定,这对记住他们的id是非常有用的,例如,-或u的空格或骆驼壳。这家伙已经完成了1000万个字符!我很抱歉。一百万?当我在多伦多学习计算机科学时,教官打趣道:“每个人当然都知道为什么1582年10月的公历少了10天。”我不得不问一位同事,他傲慢地看着我说“因为采用了公历,什么,你从来没有上过小学?“我没有。不在加拿大。我去了埃及的小学,学习了伊斯兰历法。SI前缀也是一样:你可能受益于西方教育,但我没有。不过还是要感谢你居高临下的态度。@beliha非常肯定,至少在葡萄牙这里,我从来没有听说过1582年10月的公历少了10天,我猜我不是唯一一个。我不认为学校从我的记忆中教过这门课,所以任何人都大胆地期望每个人都知道它。@beliha我上的是西方学校,甚至没有学会我们使用公历(至少不是这个名字),我们只使用了标准日历术语。关于这10天的失踪,我从youtube上了解到。谢谢你和+1指出ID必须以字母开头。过去我使用过诸如“1”、“2”、“3”、“4”、“5”之类的ID,没有问题。我做了很多与调查相关的小部件和交互元素,并使用像这样的ID来创建一个方便的“score”属性和ID引用。今天我试着让一些CSS工作起来,这些CSS本应该工作的。我甚至通过W3C验证程序运行了它,但它没有提醒我这个问题。。。但这篇文章确实如此。现在,当我将id='5'更改为'x5x'时,css工作正常。。。现在我只需要更改计分子程序来去除x!又是Thx。