ホームページ >ウェブフロントエンド >CSSチュートリアル >複数の HTML 要素が同じ ID を共有しても CSS セレクターに応答できますか?

複数の HTML 要素が同じ ID を共有しても CSS セレクターに応答できますか?

DDD
DDDオリジナル
2024-12-19 15:09:09252ブラウズ

Can Multiple HTML Elements Share the Same ID and Still Respond to a CSS Selector?

CSS セレクターの要素 ID と複数の応答

HTML では、各要素がドキュメント内で一意の ID 属性を持つ必要があります。ただし、一般的な疑問が生じます。複数の要素が同じ ID 値を共有し、単一の CSS ID セレクターに応答できますか?

W3C ドキュメント

W3C ドキュメントによると、 「2 つの ID 属性が同じ値を持つことはできません...ID 属性はその要素を一意に識別するために使用できます。」これは、複数の要素に同じ ID を使用することが有効ではないことを示唆しています。

ブラウザの動作

W3C の推奨にもかかわらず、ブラウザは無効な HTML を許容し、処理しようとすることがよくあります。それ。たとえば、次の例では、

#red {
  color: red;
}

<p>

同じ ID を共有している場合でも、両方の段落が赤色で表示されます。これは、ブラウザが開発者の意図を推測し、それに応じて無効な HTML を解釈することで「サイレントに失敗」しようとするために発生します。

リスクと制限

ブラウザはページを正しく表示する可能性がありますが、上記のシナリオでは、HTML 仕様から逸脱すると、予期しない副作用が発生する可能性があります。たとえば、document.getElementById('red') を使用すると、最初に一致した要素のみが返されます。さらに、一貫性を確保するには、異なるブラウザ間でテストすることが重要です。

CSS セレクターに同じ ID を使用しないでください

ベスト プラクティスとして、複数の要素に同じ ID を使用することは避けてください。代わりに、同様のスタイルを共有する要素をターゲットとするクラス名を使用することを検討してください。クラス名はこの目的のために特別に設計されており、各要素が一意の識別子を持つようにします。

同じ ID を持つ複数の要素の代替

同じ ID を持つ複数の要素を選択する場合ID は絶対に必要です。属性セレクターの使用を検討してください:

document.querySelectorAll('p[id="red"]');

ただし、このアプローチは Internet Explorer 7 ではサポートされていません。以下。

以上が複数の HTML 要素が同じ ID を共有しても CSS セレクターに応答できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。