SCSSのmixinを活用して、メディアクエリを効率的に管理する方法を解説します。
SCSSは、CSSを拡張したメタ言語で、変数やmixinなどの機能を活用することで、スタイルシートの記述を効率化できます。
特に、レスポンシブデザインを実現するためのメディアクエリの管理は、SCSSのmixinを使用することで、より簡潔でメンテナンスしやすくなります。
マップとミックスインを組み合わせたメディアクエリの管理
マップ(連想配列)を使用してブレイクポイントを定義し、ミックスインでメディアクエリを管理する方法です。
/scss ├── _mixins.scss ├── _variables.scss ├── style.scss
ブレイクポイントの定義
マップ(連想配列)を用いて、各デバイスや画面サイズに対応するメディアクエリを設定します。SCSSCopy// _variables.scss$breakpoints: ('sp': 'screen and (max-width: 428px)', // スマホ'tb': 'screen and (max-width: 1279px)', // タブレット'pc': 'screen and (min-width: 1280px)', // パソコン);
ミックスインの作成
引数としてブレイクポイントのキーを受け取り、対応するメディアクエリを適用するミックスインを定義します。SCSSCopy// _mixins.scss@use 'variables';@use 'sass:map';@mixin mq($breakpoint) {@media #{map.get(variables.$breakpoints, $breakpoint)} {@content;}}
ミックスインの使用
スタイルシート内で、必要なブレイクポイントに応じてミックスインを呼び出し、スタイルを適用します。SCSSCopy// style.scss@use 'mixins';.example {font-size: 16px;@include mixins.mq('tb') {font-size: 14px;}@include mixins.mq('sp') {font-size: 12px;}}
この方法により、メディアクエリの管理が一元化され、コードの可読性と保守性が向上します。
ミックスインにコンテンツブロックを渡す方法
ミックスイン内で@contentを使用し、呼び出し時にスタイルを挿入する方法です。
/scss ├── _mixins.scss ├── style.scss
ミックスインの定義
@contentを利用して、呼び出し時に指定されたスタイルを挿入できるようにします。SCSSCopy// _mixins.scss@mixin responsive($breakpoint) {@media #{$breakpoint} {@content;}}
ミックスインの作成
引数としてブレイクポイントのキーを受け取り、対応するメディアクエリを適用するミックスインを定義します。SCSSCopy@use 'mixins';.example {font-size: 16px;@include mixins.responsive('screen and (max-width: 1079px)') {font-size: 14px;}@include mixins.responsive('screen and (max-width: 428px)') {font-size: 12px;}}
この方法では、メディアクエリの条件を柔軟に指定でき、スタイルの適用範囲を明確に管理できます。
ミックスインに変数を渡して管理する方法
/scss ├── _mixins.scss ├── _variables.scss ├── style.scss
ブレイクポイントの定義
変数に各デバイスの画面サイズを設定します。SCSSCopy// _variables.scss$sp: 428px; // スマホ$tb: 1279px; // タブレット$pc: 1280px; // パソコン
ミックスインの作成
引数として設定した変数を受け取り、対応するメディアクエリを適用するミックスインを定義します。SCSSCopy// _mixins.scss@use 'variables';@mixin sp {@media screen and (max-width: variables.$sp) {@content;}}@mixin tb {@media screen and (max-width: variables.$tb) {@content;}}@mixin pc {@media screen and (min-width: variables.$pc) {@content;}}
ミックスインの使用
スタイルシート内で、必要なブレイクポイントに応じてミックスインを呼び出し、スタイルを適用します。SCSSCopy// styles.scss@use 'mixins';.example {font-size: 16px;@include mixins.tb {font-size: 14px;}@include mixins.sp {font-size: 12px;}}
Sassを学習するならこの1冊で充分!

もみじ
HTMLとCSSの知識があれば、Sassについての必要な知識を身に付けることができます。
実践的な内容を学ぶことができ解説も丁寧で分かりやすく、基礎的な内容から管理・運用・設計のやり方もこの1冊で学ぶことができます。