2009-02-24 70 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。

相關問題