CSSでデザインを指定するために欠かせないのが 「セレクタ」 です。
セレクタを正しく理解すると、HTML要素を狙い撃ちしてデザインできるようになり、
CSSが一気に扱いやすくなります。
この記事では、基本のセレクタ・複合セレクタ・用途別の使い分け を初心者向けに丁寧に解説します。
セレクタとは?
セレクタ(selector)とは、CSSで “どのHTML要素にスタイルを適用するか” を指定するもの。
p {
color: blue;
}
↑ この「p」の部分がセレクタです。
CSSは必ず セレクタ → プロパティ → 値 の流れで書きます。
セレクタの種類(基本6つ)
① タグセレクタ(要素セレクタ)
HTMLタグ名を直接指定。
p { color: #333; }
h2 { margin-bottom: 20px; }
✔ 全ての同じタグに一括で反映
✔ 初心者は使いすぎ注意(全体が変わりすぎる)
② クラスセレクタ(.class)
最も頻繁に使うセレクタ。
<p class="lead">文章です。</p>
.lead {
font-size: 18px;
}
✔ 複数要素に共通のデザインを当てたいときに最適
✔ 再利用性が高い
✔ BEMなどのCSS設計でも基本
③ IDセレクタ(#id)
ページ内で1つだけ使う要素向け。
<div id="main-visual"></div>
#main-visual {
background: #eee;
}
✔ 一意(unique)な要素に使う
⚠ 多用すると管理が破綻しやすいので初心者は 多用禁止
④ 属性セレクタ
属性を持つ要素を狙える。
input[type="email"] {
border-color: blue;
}
他にも:
a[target="_blank"] { … }
img[alt] { … }
✔ フォームデザイン等で強力
✔ 覚えると細かい指定ができる
⑤ ユニバーサルセレクタ(*)
全要素を対象にする。
* {
box-sizing: border-box;
}
✔ 初期設定でよく使う
⚠ デザイン指定に使うのは非推奨(範囲が広すぎる)
⑥ 擬似クラス・擬似要素
※ 詳細記事を別で用意するため、基礎だけ触れます。
a:hover { color: red; } /* 擬似クラス */
p::before { content: "★"; } /* 擬似要素 */
✔ ホバー・入力状態・装飾などに使う
複合セレクタ(使いこなすと一気に上達)
① 子孫セレクタ(スペース)
main p {
color: #444;
}
✔ main 内のすべての p に適用
⚠ 範囲が広いので乱用注意
② 子セレクタ(>)
nav > ul {
padding: 0;
}
✔ 直下の子だけ指定(正確なデザイン)
③ 隣接セレクタ(+)
h2 + p {
margin-top: 0;
}
✔ h2 の直後の p にだけ適用
④ 兄弟セレクタ(~)
h2 ~ p {
color: #555;
}
⑤ 複数セレクタ(,)
h1, h2, h3 {
font-family: "Noto Sans JP";
}
✔ 同じデザインをまとめて当てられる
✔ コードが短くなり管理しやすい
セレクタの優先順位(超シンプルに理解)
CSSには 強い弱い があり、
どちらが勝つかで最終的なデザインが決まります。
優先順位は以下の順:
① !important(最強)
② IDセレクタ(#id)
③ クラスセレクタ(.class)
④ タグセレクタ(p, h2)
⑤ ユニバーサル(*)
✔ 基本は「クラスセレクタ」を使う
✔ IDはほぼ使わない
✔ タグの多用は危険
どのセレクタを使うべきか?(用途別)
| やりたいこと | 最適なセレクタ |
|---|---|
| 同じデザインを複数箇所で使いたい | .class |
| 一箇所だけ装飾したい | #id(できれば class 推奨) |
| HTML構造で親子を指定したい | > 子セレクタ |
| パーツごとにまとまりを作りたい | .box .titleなど子孫 |
| フォームやリンクだけ狙いたい | [type="text"]やa:hover |
よくある失敗と注意点
IDセレクタを使いまくる
→ 拡張しにくくなる
→ WordPressテーマとも衝突しがち
タグセレクタの上書きを多用
→ 予期せぬ箇所までデザインが変わる
子孫セレクタばかり書く
→ CSSが長くなり管理不能に
specificity(優先順位)を理解せずに書く
→ 思った通りに反映されない原因の9割
まとめ
- セレクタは CSS の「どの要素に適用するか」を決める重要な仕組み
- 最も使うのはクラスセレクタ(.class)
- IDは多用しない、タグの乱用もしない
- 子孫・子・隣接などの複合セレクタで精度を上げる
著者からのひと言
セレクタはCSSの中でも特に重要な概念で、ここを理解できるとデザインが一気に楽になります。
最初は「どのセレクタを使うべきか」迷うかもしれませんが、実際にコードを書きながら覚えていけば必ず身につきます。焦らず、一つひとつ確実に進めていきましょう。
次の記事は「CSS優先順位(カスケード)を徹底解説」です。

