2009-02-24 28 views
67

HTML specHTML IDの実際の最大長はどれくらいですか?

IDとNAMEトークンは文字で始まらなければならないと言う([A-ZA-Z])と を行ってもよい文字、数字([0-9])、ハイフンの任意の数( " - ")、アンダースコア( "_")、コロン( ":")、およびピリオド( "。"

HTML 4のSGML declarationにはNAMELENの値65536が使用されていますが、「固定された制限を避ける」と記載されています。

ただし、ブラウザ、CSS実装、およびJavaScriptツールキットには、のいずれかの数字がに設定されている必要があります。 HTML/CSS/JSアプリケーションで安全に使用できる最小限の制限は何ですか?

+2

IDを指摘していただきありがとうございます文字で始める必要があります。過去に問題なく「1」、「2」、「3」、「4」、「5」などのIDを使用しました。私は、調査関連のウィジェットやインタラクティブな要素をたくさん使い、便利な「スコア」属性とID参照のためにこのようにIDSを使用しています。今日私は実際に働いていたはずのCSSをいくつか手に入れようとしていました。私はW3Cのバリデーターを過ぎて走ってしまったが、それは私にこの問題を警告しなかった...しかし、このポストはそうした。そして今、私がid = '5'を 'x5x'に変更したときに、cssが機能します...今はxを取り除くためにスコアリングサブルーチンを変更するだけです!再びThx。 –

答えて

170

テスト済み:1Mの文字は、現代のすべてのブラウザ(Chrome1、FF3、IE7、Konqueror3、Opera9、Safari3)で動作します。

さらに長いIDが覚えにくくなると思われます。

+105

"もっと長いIDが覚えにくくなると思われます。" - 笑! – Josh

+12

この男は10の "百万"の文字をやった! http://stackoverflow.com/a/1496150/74585 –

+1

LOL、うわー、ちょっとした過不足のようだ。 – rectangletangle

0

これは学問的な質問ですが、それはかなり面白いですが、ベストプラクティスに関する限り、これらを伸ばす必要はありません。 HTML要素に関するデータを格納する必要がある場合は、DOMオブジェクトの属性に格納する方がよいでしょう。

13

しかし、実際の制限は、私がHTML/CSSで作業している間に私の頭の中に保存できるIDです。

この制限は、私が働いていた時間や要素のコンテキストで名前が意味をなさないかどうかによって、通常8〜13文字です。

+4

私は、必要に応じて接頭辞を使用して自分の「内部バッファ」を拡張することができるかもしれないと付け加えます。 :-) –

+0

確かに可能です。 :) –

+9

この質問はまだRIAでは、コードによって生成されていることが多く、一意になるためには長くなる可能性があるため、非常に重要です。例として:window_2_panel_12_group_6_label_2 _... – Josh

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 --> 

あなたが見ることができるように、セレクタは時折かなり長いです。しかし、それはあなたが#doc、#bd、#yui-mainなどのIDで終わるYUIグリッドのようなもので作業するよりもはるかに簡単です。

+3

私はたくさんのことをheirachically名付けているのでdiv id = 'user'とし、その中にid = 'user-stats'、id = 'user-inventory'、id = 'user私は5つのdivを持つかもしれないと言っています。id = 'user-stats-strength'、id = 'user-stats-agility'、id = 'user-stats-defense'、id = 'user -stats-intellect '、id =' user-stats-heath 'などのように、私は自分のIDを覚えておくと非常に便利です。 – Psytronic

関連する問題