#div2 が #div1 内に含まれている場合、css スタイルシートでそれを参照することに実際の利点はありますか? このような:
#div1 {
display:block;
}
#div1 #div2 {
background-color:#e0e0e0;
}
その後も同様に。テーブルIDがあり、それがテーブルヘッダーです
#myTable {
width:100%;
}
#myTable #productName{
width:75%;
}
唯一の利点は、より具体的にできることです。たとえば、ある要素が別の要素内に配置されている場合にのみ、その要素に適用されるルールを作成できます。しかし、ほとんどの場合、その理由はなく、css のパフォーマンスが低下する可能性があります (さらに、親 ID を変更したい場合に備えて、コードの重複が作成されます)。
あなたの場合、セレクターはIDであり、各IDを持つ要素は1つしかないため、ネストされたセレクターの利点はさらに少なく、おそらくそれらは必要ありません。
より深い説明については、この記事をお読みください。
要素 ID は DOM 内で一意であるため、選択されたコンテキストは、指定された例では明確であり、何の利点もありません。
ただし、クラスのネストされたセレクターを操作している場合は非常に便利です。
一般に、id セレクターをネストすることは役に立ちませんが、微妙な違いがあります。以下では、ネストされたルールの特異性が高くなり、背景が赤になります。
HTML
<div id="outer">
<div id="inner">foo</div>
</div>
CSS
#outer #inner {
background-color: red;
}
#inner {
background-color: blue;
}
特異性のルールは、css 仕様で概説されています。
そうは言っても、通常はクラスを使用しますが、これはコンテナーに基づいて要素のスタイルを変更するのに役立ちます (何らかの奇妙な理由でクラスを使用できない/使用しない場合)。