
7.メディアクエリのネスト ー フロントエンドエンジニアのための「Sass」講座
最近のWebサイト制作ではほとんど必須となっているモバイル対応。
そのモバイル対応でレスポンシブWebデザインを実装する場面の多くなってきていると思います。
そこで画面サイズに合わせてスタイルを変えるために、メディアクエリを使う場面も増えてきています。
そのメディアクエリもSassでネストして書くことができます。
メディアクエリをネストして書くと、このようになります。
1 2 3 4 5 6 7 8 9 |
main { width: 1024px; margin: 0 auto; @media screen and (max-width: 768px) { width: 100%; margin: 0; } } |
保存して生成されたCSSを見てみると、ネストした親セレクタが、メディアクエリの中に含まれた形で出力されています。
1 2 3 4 5 6 7 8 9 10 11 |
main { width: 1024px; margin: 0 auto; } @media screen and (max-width: 768px) { main { width: 100%; margin: 0; } } |
さらに、メディアクエリの中に、メディアクエリをネストして書くと、画面幅の範囲の指定も書きやすくなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
main { width: 1024px; margin: 0 auto; @media screen and (max-width: 768px) { width: 100%; margin: 0; @media screen and (max-width: 1024px) { width: 800px; } } } |
このSassをコンパイルして、CSSにするとこのようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
main { width: 1024px; margin: 0 auto; } @media screen and (max-width: 768px) { main { width: 100%; margin: 0; } } @media screen and (max-width: 768px) and (max-width: 1024px) { main { width: 800px; } } |
画面幅の指定だけでなく、印刷用の指定、printも使うことができます。
例えば、ヘッダーは印刷しない設定にする場合は、このようになります。
1 2 3 4 5 6 7 8 |
#header { height: 100px; border-bottom: 1px solid #CCC; @media print { display: none; } } |
CSSではネストが使えないため、メディアクエリを書く場所が別のCSSファイルだったり、離れた場所に書かざるを得ませんでした。
そのため、見通しが悪くなり、同じセレクタに指定したスタイルの関係性がわかりにくくなっていました。
Sassのネストを使ってメディアクエリを書くことで、同じセレクタに画面サイズやメディアの種類によって、どのようなスタイルが適用されるのかが、わかりやすくなるメリットがあります。
レスポンシブデザインを実装する際には、メディアクエリのネストも試してみましょう。
【動画講座】 フロントエンドエンジニアのための「Sass」講座 ~基礎から実践まで~

HTML5とCSS3の基本的な知識があれば、Sassの知識はゼロからでも大丈夫!Udemyの動画講座なら、約5時間の動画でWeb開発の現場で使える技術を身につけることができます!
このブログから申し込むと定価1,2000円のところ、
90%OFFの1,200円で受講できるクーポンをプレゼント!