CSSはSass(SCSS)を使わなくても親子の階層で記述することができるようになりました。
その良し悪しについてサンプルをもとに考えてみましょう。
コードを見比べてみます。
まずは同じ二つのHTMLを書きます。
<div class="demo_1">
<div class="demo_11">
<span>通常</span>のCSS適応のサンプル
</div>
</div>
<div class="demo_2">
<div class="demo_21">
<span>ネスト(入れ子)</span>のCSS適応のサンプル
</div>
</div>
CSSは後でみるとして先にその実行結果はこちら
通常のCSS適応のサンプル
ネスト(入れ子)のCSS適応のサンプル
demo_1の青い方のCSSはこちら
<style>
.demo_1 {
color: white;
margin: 10px;
}
.demo_1 .demo_11 {
background-color: blue;
padding: 10px;
}
.demo_11 span {
font-size: 1.5em;
font-weight: bold;
padding: 0 10px;
}
</style>
demo_2の赤い方のCSSはこちら
<style>
.demo_2{
color: white;
margin: 10px;
.demo_21 {
background-color: red;
padding: 10px;
span {
font-size: 1.5em;
padding: 0 10px;
}
}
}
</style>
demo_2の方がスマートで、後発で新しく導入された書き方なので綺麗見えます。
demo_1(従来のCSSの書き方)
メリット
・親子関係はプロックごとに完結
・要素が全てフラットでシンプル
・イレギュラーに対応しやすい
デメリット
・何度も継承する親要素の記述が必要
demo_2(入れ子のCSSの書き方)
メリット
・何度も同じ記述を書かなくてよい
・HTML上の親子関係と合わせられる
・文字が少ないため、読み込み速度が向上する
・関連のスタイルをまとめる習慣をつけられる
デメリット
・人が読みやすくするために多くのインデントが必要
・イレギュラーが発生した時に歪な表記になる
・従来の書き方と併用が発生する
ブラウザの表示速度を上げるためには一文字でも少ない方が好ましく、CSS上はどちらも改行なし、インデントなしで記述することができます。
人(未来の自分や共同編集者)が編集しやすくするために、また、ミスが起こらないように、最善の選択をしたいものです。