はじめに
CSSのネスト(入れ子構造)は、従来SASSやLESSといったプリプロセッサを使わなければ実現できませんでした。しかし、CSSの仕様として正式にネストが導入されつつあり、ブラウザの対応も進んでいます。本記事では、SASSなしで使えるCSSネストの基本を解説します。
CSSネストとは?
CSSネストとは、親要素のスタイル内に子要素のスタイルを記述することで、階層構造を直感的に表現できる技術です。これにより、コードの可読性が向上し、よりシンプルに管理できるようになります。
CSSネストの基本構文
CSSのネストは &
(アンパサンド)を使って実現します。基本的な構文は以下のとおりです。
.container {
color: black;
& h1 {
font-size: 2em;
}
& p {
font-size: 1em;
}
}
このコードは、以下のように展開されます。
.container {
color: black;
}
.container h1 {
font-size: 2em;
}
.container p {
font-size: 1em;
}
ネストを活用するメリット
1. コードの可読性向上
親子関係が視覚的にわかりやすくなり、どの要素がどこに属しているのかを直感的に理解できます。
2. コードの短縮
不要なクラス名の重複を減らすことで、CSSの記述量を削減できます。
3. 保守性の向上
関連するスタイルをまとめて記述できるため、修正や追加が容易になります。
ネストの応用例
疑似クラス・疑似要素のネスト
&
を活用することで、疑似クラスや疑似要素も簡単に記述できます。
.button {
background-color: blue;
color: white;
&:hover {
background-color: darkblue;
}
}
このコードは、以下のように展開されます。
.button {
background-color: blue;
color: white;
}
.button:hover {
background-color: darkblue;
}
メディアクエリのネスト
メディアクエリもネスト内に記述できます。
.card {
padding: 20px;
@media (max-width: 600px) {
padding: 10px;
}
}
このコードは、以下のように展開されます。
.card {
padding: 20px;
}
@media (max-width: 600px) {
.card {
padding: 10px;
}
}
注意点
1. ブラウザ対応状況
CSSネストは現在、多くのモダンブラウザで対応が進んでいますが、一部の古いブラウザではサポートされていません。利用する前に最新の対応状況を確認しましょう。
2. 過度なネストは避ける
ネストを深くしすぎると、逆に可読性が下がり、CSSの管理が難しくなります。3~4階層以内に抑えるのが理想です。
まとめ
CSSのネスト機能を活用すると、より直感的で管理しやすいスタイルシートを作成できます。SASSを使わなくても、モダンなCSSだけで効率的に記述できるようになってきています。ブラウザ対応状況を確認しつつ、適切に活用していきましょう!