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冊で学ぶことができます。