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