言語設計の観点から、要素が1つしかないクラスを持つことができる場合、HTMLのid属性を作成する意味は何ですか?すべてにクラスを使用し、マークアップを複雑にしないのはなぜですか?
考えられる説明は3つ考えられますが、満足のいくものではないので、なぜHTMLにidが含まれているのかご存知でしょうか。私の考えは次のとおりです。
- IDの存在は、CSSスタイルの作成に役立ちます。これは、IDの特異性が高いため、クラスの他のメンバーに与えられたスタイルをオーバーライドするクラスの1つのメンバーにIDを与えることができるためです。代わりに追加のクラスを指定して、そのクラスのスタイルを単一要素に指定されたスタイルのセクションのスタイルシートの下部に配置できるため、この説明は完全には満足できません。
- jQueryで要素を選択すると、そのIDを持つ要素が見つかるとすぐにDOMトラバーサルが停止する可能性があります。したがって、IDが存在すると、選択の実行が速くなります。IDとクラスがすでに存在してからずっと後にjQueryが作成されたと確信しているので、この説明は私を満足させません。
- 言語機能としてIDを使用すると、一意であると想定されるスタイル(およびセレクター)が1つの要素にのみ適用されるようにすることができます。これは、そうでない場合に問題が発生するためです。同じIDで2つの要素を誤って作成したときにサイトが破損することは、問題が発生したことを通知する特に効果的な方法ではないように思われるため、この説明は私を満足させません。