【WEB開発】scss -「&」と「,」の使い方

【WEB開発】scss -「&」と「,」の使い方

SCSS(Sass)を使っていると必ず目にする「&」と「,」。これらを正しく理解して使いこなすことで、

コーディングの速度と保守性が劇的に向上します。

今回は、基本の挙動から実務でよく使う応用パターンまでを解説します。

1. & (アンパサンド) :親要素をスマートに参照する

SCSSにおいて最も重要な記号の一つが&です。これは「親セレクタ(自分自身)」に置き換わります。

主に「擬似クラスの付与」や「クラス名の連結(BEM記法)」で威力を発揮します。

使用例:ホバー時のスタイル 通常、:hoverを書くためにクラス名を再記述しますが、&を使えばネストの中で完結します。

SCSS

// SCSS
.button {
background-color: blue;

// & は .button に置き換わる
&:hover {
background-color: darkblue;
}
}

コンパイル後のCSS

CSS

.button {
background-color: blue;
}
.button:hover {
background-color: darkblue;
}

このように、親クラス名(.button)が変わっても修正箇所が少なくて済むのが最大のメリットです。

2. , (カンマ) :複数のセレクタをまとめて管理する

カンマはCSSと同様に「セレクタのグループ化」を行いますが、SCSSのネスト内で使うことで、

親要素の影響を受けた状態でグルーピングできます。共通のスタイルを一度に当てたい場合に便利です。

使用例:複数の子要素に同じスタイル

SCSS

// SCSS
.card {
padding: 20px;

// h2とpの両方に適用
h2, p {
margin: 0;
color: #333;
}
}

コンパイル後のCSS

CSS

.card {
padding: 20px;
}
.card h2,
.card p {
margin: 0;
color: #333;
}

3. 実践編:&と,を組み合わせた効率的な書き方

&と,を組み合わせると、「複数の状態」や「特定の条件下」でのスタイルを非常に簡潔に書くことができます。

実務で頻出のテクニックです。

使用例:ホバーとフォーカスを同時に指定 ボタンやリンクで、マウス操作(hover)とキーボード操作(focus)の両方に対応するスタイル定義です。

SCSS

// SCSS
.submit-btn {
background-color: #eee;

// 親要素が hover または focus された時
&:hover,
&:focus {
background-color: #ccc;
outline: none;
}
}

コンパイル後のCSS

CSS

.submit-btn {
background-color: #eee;
}
.submit-btn:hover,
.submit-btn:focus {
background-color: #ccc;
outline: none;
}

今回のまとめ

用語 意味・役割
&(アンパサンド) 親セレクタ自身を参照する(:hoverやBEMのクラス連結に使用)。
,(カンマ) 複数のセレクタを並列に並べて、同じスタイルを適用する。
組み合わせ技 &:hover, &:focus のように書くことで、複数の状態変化を一括管理できる。
メリット 記述量が減り、クラス名の変更にも強い「保守性の高いコード」になる。