グルーピングセレクタを“正しく・効率的に”使いこなす
グルーピングセレクタは、CSS の中でも 「複数のセレクタに同じスタイルをまとめて適用する」 とても便利な書き方です。
初心者がここを理解すると、CSS が一気にスッキリし、保守性も向上します。
Tailwind CSS では少し考え方が変わるため、
両方の視点で丁寧に解説していきます。
グルーピングセレクタとは何か
基本形(CSS)
h1, h2, h3 {
color: #333;
margin-bottom: 16px;
}
CSSこれは h1 / h2 / h3 のすべてに同じスタイルを適用します。
HTML
<h1>タイトル</h1>
<h2>小見出し</h2>
<h3>さらに小見出し</h3>
HTML深掘り:グルーピングは「重複をなくす」ための技術
例えば、次のように書くと…
h1 {
color: #333;
}
h2 {
color: #333;
}
h3 {
color: #333;
}
CSS同じコードを何度も書くことになり、
修正時に 3箇所直す必要があるという問題が生まれます。
グルーピングセレクタはこれを 1回で済ませるための仕組みです。
Tailwind CSS ではどうするのか
Tailwind は「ユーティリティクラスを HTML に直接書く」スタイルなので、
CSS のようにグルーピングはしません。
<h1 class="text-gray-800 mb-4">タイトル</h1>
<h2 class="text-gray-800 mb-4">小見出し</h2>
<h3 class="text-gray-800 mb-4">さらに小見出し</h3>
HTMLTailwind の場合は、
共通スタイルをコンポーネント化したいときだけ @apply を使うのが一般的です。
.heading {
@apply text-gray-800 mb-4;
}
CSS<h1 class="heading">タイトル</h1>
<h2 class="heading">小見出し</h2>
<h3 class="heading">さらに小見出し</h3>
HTMLよく使うグルーピングセレクタの実践パターン
見出しの共通スタイルをまとめる
CSS版
h1, h2, h3 {
font-family: "Noto Sans JP", sans-serif;
color: #222;
}
CSSTailwind版
<h1 class="font-sans text-gray-900">タイトル</h1>
<h2 class="font-sans text-gray-900">小見出し</h2>
<h3 class="font-sans text-gray-900">さらに小見出し</h3>
HTMLボタンの共通スタイルをまとめる
CSS版
.btn, .btn-primary, .btn-secondary {
padding: 12px 20px;
border-radius: 6px;
font-weight: bold;
}
CSSHTML
<button class="btn">通常</button>
<button class="btn-primary">メイン</button>
<button class="btn-secondary">サブ</button>
HTMLTailwind版
Tailwind はグルーピングしないため、
共通部分を @apply でまとめることが多い。
.btn {
@apply px-5 py-3 rounded font-bold;
}
CSS<button class="btn bg-gray-200">通常</button>
<button class="btn bg-blue-600 text-white">メイン</button>
<button class="btn bg-gray-400 text-white">サブ</button>
HTMLフォーム要素の共通スタイルをまとめる
CSS版
input, textarea, select {
border: 1px solid #ccc;
padding: 8px;
border-radius: 4px;
}
CSSTailwind版
<input class="border border-gray-300 p-2 rounded" />
<textarea class="border border-gray-300 p-2 rounded"></textarea>
<select class="border border-gray-300 p-2 rounded"></select>
HTMLTailwind は「HTML側で統一する」スタイル。
グルーピングセレクタの“深掘りポイント”
1. グルーピングは「読みやすさ」を大きく向上させる
例えば…
.card-title, .card-subtitle, .card-text {
margin-bottom: 12px;
}
CSSこう書くことで、
「この3つは同じグループなんだな」と一目で分かる。
2. グルーピングしすぎると逆に読みにくくなる
悪い例
h1, h2, h3, p, a, span, strong, em {
color: #333;
}
CSSこれは 何をしたいのか分からない。
グルーピングは「意味のあるまとまり」にだけ使うのが鉄則。
3. Tailwind ではグルーピングの代わりに「コンポーネント化」する
Tailwind の思想はこう。
- CSS にまとめる → @apply
- HTML に直接書く → ユーティリティクラス
- グルーピングは基本しない
Tailwind は「詳細度の問題を避ける」ために
グルーピングを使わない設計になっている。
例題で理解を深める
例題:ニュース一覧のタイトルと本文をまとめてデザインする
CSS版
.news-title, .news-text {
color: #2d3748;
margin-bottom: 8px;
}
CSSHTML
<h3 class="news-title">ニュースタイトル</h3>
<p class="news-text">本文テキスト</p>
HTMLTailwind版
<h3 class="text-gray-700 mb-2">ニュースタイトル</h3>
<p class="text-gray-700 mb-2">本文テキスト</p>
HTMLTailwind では「同じクラスを付ける」ことでグルーピングの代わりにする。
まとめ:グルーピングセレクタを使いこなすコツ
本質
- 複数のセレクタに同じスタイルをまとめて適用できる
- 重複を減らし、保守性を高める
- 意味のあるグループにだけ使うのが正解
実務でのポイント
- 見出し、ボタン、フォームなどでよく使う
- グルーピングしすぎると逆に読みにくい
- 詳細度は変わらないので安心して使える
Tailwind の考え方
- グルーピングは基本しない
- 共通化したい場合は @apply を使う
- HTML にユーティリティクラスを積み重ねる設計


