Sassの便利機能:入れ子(ネスト)について
Sassの便利な機能、入れ子について紹介したいと思います。ちなみに入れ子のことを英語でネストと言い、実際にSassでもそう呼ばれることがあります。入れ子は、Sassを使うのであれば絶対使うものです。
入れ子(ネスト)の基本
入れ子とは、簡単に言うと今まで一つの{ }で完結していたものを、{ }の中に{ }を書いてCSSで値を指定していくものです。早速コードを見てみましょう。
HTMLコード
<div id="main-contents"> <section> <h1>タイトル</h1> <p>段落1:テキストテキストテキスト</p> <p>段落2:テキストテキストテキスト</p> </section> <section class="main-contents-item"> <h1>タイトル</h1> <ul> <li>リスト1</li> <li>リスト2</li> </ul> </section> </div>
CSS
#main-contents { width: 960px; margin: 0 auto; } #main-contents section h1 { font-size: 21px; } #main-contents section p { font-size: 14px; color: #000; } #main-contents .main-contents-item h1 { font-size: 18px; } #main-contents .main-contents-item ul li { display: inline-block; }
SCSSに変換した後
#main-contents { width: 960px; margin: 0 auto; section { h1 { font-size: 21px; } p { font-size: 14px; color: #000; } } .main-contents-item { h1 { font-size: 18px; } ul { display: inline-block; } } }
毎回#main-contents …と書かなくてよくなったので、記述量が減り、見た目もわかりやすくなりました。何度も親要素や要素までのルートを書かなくていいので、とても楽です。また、HTMLの構造と同じような見た目になるので、視覚的にCSSを判断することができます。 ちなみにネストには、改行やインデントのルールもありません。
メディアクエリでも便利なネスト
#box1 { width: 300px; float: left; @media screen and (max-width: 480px) { width: 100%; float: none; } }
レスポンシブにもよく使われるメディアクエリはCSSだと記述が離れてしまい見つけるのも大変でした。ネストを使えば、とてもわかりやすくメディアクエリをつけることができます。