web-dev-qa-db-ja.com

HTML要素に複数の一意のID属性を設定できますか?

たとえば、HTML要素がIDの複数の属性を持つことができるかどうかを知る必要があります。

<input type="text" id="identifier1" id="selector1" />

clarifyする必要があったので、このステートメントは W3ウェブサイト のセレクターについて言及しました。

要素に複数のID属性がある場合、IDセレクターの目的のために、それらすべてをその要素のIDとして扱う必要があります。このような状況は、xml:id、DOM3 Core、XML DTD、および名前空間固有の知識の混合物を使用して到達できます。

人々が参照している可能性のある重複は、この構文に関する質問を述べています

<input type="text" id="identifier1 selector1" />

これは私が尋ねている構文とは異なります。

17

HTML要素がIDの複数の属性を持つことができるかどうかを知る必要がある

短い答え? いいえ、ブラウザは最初のもののみをレンダリングするためです。

this Fiddle を参照してください。DOMに表示される最初のidを使用して、CSSでのみターゲットにできます。 2番目のidを使用するようにそのCSSセレクターを変更してみてください、それは機能しません。

これは、2番目のIDがブラウザーによって無視されているように見えるためです。これは出力HTMLであるためです。

<input type="text" id="identifier1">

要素に追加の識別子が本当に必要な場合は、複数のクラス名またはデータ属性を使用して追加データに対応することを検討する必要があります。

25
mattytommo

HTML要素がIDの複数の属性を持つことができるかどうかを知る必要がある

いいえ。HTMLの要素には、特定の属性の複数のインスタンスを含めることはできません。

この声明を明確にする必要があったので

その文の最後の文に注意してください。

また、「ID属性」というCSSの考え方は「idという名前の属性」ではないことに注意してください。そのドキュメントからも引用:

文書言語には、ID型であると宣言された属性が含まれる場合があります

HTMLでは、id属性のみがIDタイプです。

6
Quentin

いいえ、複数のIDを指定した場合でも、最初に見つかったID属性が使用されます。

可能な重複:

html要素に複数のIDを設定できますか?

4
Tapan Chandra

いいえ[〜#〜] id [〜#〜]はHTML要素に対して同じにすることはできませんが、クラスは複数の要素に使用するものであり、1つの要素に複数のクラスを含めることができます

1
Abuzer Firdousi

いいえ、属性はタグ内で繰り返してはならないためです。これはHTMLの一般的なルールであり、id属性に限定されません。名目上SGMLベースのHTMLおよびXHTMLの場合、これは一般的なSGMLおよびXMLルールに従います。 HTMLシリアル化されたHTML5については、 HTML5 CR、8.1.2.3属性 を参照してください。

重複したid属性を使用する理由がわかりにくいため、回避策を提案することはできません。一般に、id属性の通常の使用では、要素ごとに1つの属性で十分です。

1

いいえ。要素IDはドキュメント全体で一意である必要があります。

0
Rubyist