こんにちは、さち です。
今回は、「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 タグ)」をそのまま記述してネストする場合に &
が必要です。(※前述)
&
の必要/不要を考えるのが面倒であれば、すべてのネストに &
を付けてしまいましょう。( &
を付けてはいけないネストはないので、正常に動作します)
コメント