2016-07-20 5 views
1

id属性の値は一意でなければなりません。とにかく2つの要素が同じid値を持つことができないという意味で、#id_nameの前に要素名を持つCSSセレクタを使用するのは意味がありません。 W3Cウェブサイトは、2つの異なる要素が同じIDを持ち、同じ文書内に同時に存在することを意味しています。理論的には、id = chapter1の異なる要素があるh1#chapter1の特別なケースがありますが、そのような場合、id = chapter1のh1は同じ文書内に存在できません。例えば、2つの異なるウェブサイト上の2つの異なる文書は、異なる要素に同じIDを使用し、両方の文書は同じスタイルシートを使用します。このような特別なケースは、いかなるスペックでも記述されなければならず、推測に委ねられてはならない。h1#chapter1はなぜ#chapter1だけではないのですか?

この抜粋は https://www.w3.org/TR/css3-selectors/#id-selectors


から次のIDセレクタはID-型付けされた属性値 "第1章" を有するH1要素を表している:以下IDセレクタが表す H1#1第1章

をIDタイプの属性の値が「chapter1」の要素: #chapter1

次のセレクタは、任意の要素wホースIDタイプの属性の値は "z98y"です。 *#z98y

+0

非適合ページがエラーなしでレンダリングできるHTMLの場合のように、あなたが記述する「特殊なケース」は常に非適合文書で発生します。もちろん、最初の要素だけに一致するidを持つセレクタを作成することはできますが、セレクタがブラウザに実装されている方法では、このようなことは実際にはありません。 [1つのCSS IDセレクタに応答する同じIDを持つ複数の要素]を参照してください(http://stackoverflow.com/questions/7262195/several-elements-with-the-same-id-responding-to-one-css-id-セレクタ) – BoltClock

答えて

0

これは、セレクタに書き込む方法を示す単なる例です。また、いくつかの追加の特異性を示しています。さらに、これはIDがクライアント側のスクリプトによって必要なもの以外の要素に移動する可能性があるため、セレクタの一部としての要素が予期しないスタイルの適用を防ぐのに役立ちます。

2

CSSに#chapter1をそのまま使用すると、そのページのどの要素でもそのセレクタを使用できます。 h1#chapter1と定義すると、h1要素だけがそのセレクタを使用できます。だから、あなたは1ページに1回しか使用できません。ただし、要素名を事前に追加することで、コードの特異性を高めることができます。例えば

h1#chapter1 { 
    color: red; 
} 

だけh1は、このIDを使用することができます。だからあなたのチームの他の誰かがこのHTML:<p id="chapter1">Some text</p>を書こうとすると、そのスタイルは適用されません。このようにしてCSSを書くことで、スタイリングしたい要素だけをスタイリングすることができます。

+0

善は正しいです。ただし、IDは一度しか使用しないでください。この場合、h1接頭辞は余計です。 – Charlie

+2

@Charlie Yup、IDは一度しか使用しないでくださいが、h1は必ずしも余計なものではありません。このように定義することは、チームで作業している場合にIDを使用してそのIDでスタイルされていないと思われる要素をスタイルすることができなくなるため、特に便利です。非常に小さなケースはい、しかし、一貫性の観点からは意味があります! –

+0

意味があります。詳しく説明してくれてありがとう! – Charlie

関連する問題