【CSS】 セレクターの記述に「ネスト(入れ子)」を使う

この記事は約3分で読めます。
記事内に広告が含まれています

コーディングのイメージ

こんにちは、さち です。

今回は、「CSS」の記述で「ネスト入れ子)」を使う方法について書いていきます。(備忘録です)

ピュア CSS で使えるので事前準備は不要! すぐ使えますよ。

スポンサーリンク

ネストの使い方

「子孫セレクタ」の絞り込みを、「ネスト」を使って書くことができます。

/* 一般的な CSS */
.sample > p { color: #222; }
.sample pre { background: #900; }

/* ネストを使って書く */
.sample {
  > p { color: #222; }
  pre { background: #900; }
}

/* 旧仕様対応のブラウザー(※後述)ではネストに「&」が必要 */
.sample {
  & > P { color: #222; }
  & pre { background: #900; }
}

疑似クラスは「&」が必須

「擬似クラス」「疑似要素」にネストを使うときは、&必須です。注意して下さい。

/* 一般的な CSS */
a:hover  { color: red; }
a::after { content: "\f14d"; }

/* ネストを使って書く */
a {
  &:hover  { color: red; }
  &::after { content: "\f14d"; }
}

また & と「疑似クラス/要素」の間にスペースを入れると動作しません。つまり、& :hover はNGで、&:hover はOKです。

対応ブラウザー

Can I use...」によると、CSS ネストの対応は下の表のとおりです。

「新仕様」対応の
バージョン
「旧仕様」対応の
バージョン
Chrome, Edge 120 以降 112~119
Firefox 117 以降
Safari 17.2 以降 16.5~17.1
Opera 106 以降 98~105

私は主に自分専用の「ユーザーCSS」でネストを使っていますが、対応ブラウザーも多くなってきたのでサイト作成でも使えそうですね。

「旧仕様」対応のバージョンでは、「要素の種類(HTML タグ)」をそのまま記述してネストする場合に & が必要です。(※前述)

& の必要/不要を考えるのが面倒であれば、すべてのネストに & を付けてしまいましょう。( & を付けてはいけないネストはないので、正常に動作します)

コメント

タイトルとURLをコピーしました