なぜ人々はこの種の CSS や HTML を使用してページのスタイルを設定するのでしょうか?
<div class="page">
<div class="page-left-column">
<div class="page-left-column-container-box">
<div class="page-left-column-container-box-element-header-wrapper">
<h2>This is the header!</h2>
</div>
</div>
</div>
</div>
上記のマークアップには、次のような CSS ルールが付随します。
.page-left-column-container-box-element-header-wrapper {
color: red;
}
次のように書いてみませんか。
<div class="page">
<div class="left column">
<div class="container-box">
<div class="element header-wrapper">
<h2>This is the header!</h2>
</div>
</div>
</div>
</div>
次に、CSS ルールを作成します (おそらく、すべてが必要なわけではありません)。
.page .left.column .container-box .element.header-wrapper {
color: red;
}
私が見る限り、後者は最初のものよりはるかに優れています。.container-box .element
や などのルールを指定できるので、あちこちにコピペせずに CSS ルールを指定する方が簡単です.column .header-wrapper
。私の意見では、これにより、ルール、コード、およびすべてがより保守しやすくなります。これの唯一の欠点は、CSS ルールを次のように記述.page .left.column .container-box .element.header-wrapper
すると、セレクターが HTML の深い階層に依存するようになることです。ただし、page-left-column-container-box-element-header-wrapper
階層にそれほど強い依存関係はないかもしれませんが、明らかに階層を変更すると、「偽の」クラス名を更新したくなるでしょう。
のようなクラス名を使用する唯一の理由page-left-column-container-box-element-header-wrapper
は、おそらくもう少し「複雑な」セレクターを使用すると計算コストが高くなり、ブラウザーが遅くなるからです。これは本当ですか?私が見ていない他のプログラミング関連/技術的な利点はありますか? それとも、複数の要素、クラス、および ID を使用するルールが複雑になっているだけですか?