CSS

CSSセレクタ完全ガイド|一覧・使い方を徹底解説

✅ CSSセレクタとは?

CSSセレクタ とは、スタイルを適用したい HTML要素を指定するための書き方のことです。
たとえば次のコードでは、p(段落)を指定するセレクタを使っています。

p {
  color: red;
}

👉 この場合、ページ内のすべての <p> が赤文字になります。

CSSを正しく使うためには、セレクタの種類と使い分けを理解することが大切です。


📌 基本的なセレクタ

1. 要素セレクタ

HTMLタグそのものを指定します。

h1 {
  font-size: 24px;
}

👉 ページ内のすべての <h1> に適用されます。


2. クラスセレクタ(.クラス名)

特定のクラスを持つ要素に適用します。

.title {
  color: blue;
}

👉 <p class="title"> にだけ反映されます。


3. IDセレクタ(#ID名)

特定の1つの要素に適用します。

#header {
  background: #333;
  color: white;
}

👉 <div id="header"> に適用されます。
⚠️ IDは1ページに1つだけが原則。


4. 全称セレクタ(*)

すべての要素に適用します。

* {
  margin: 0;
  padding: 0;
}

👉 CSSリセットでよく使われます。


📌 組み合わせのセレクタ

1. 子孫セレクタ(A B)

指定要素の中にあるすべての子要素を対象にします。

div p {
  color: green;
}

👉 <div> の中にある <p> だけが緑色に。


2. 子セレクタ(A > B)

直接の子要素だけに適用。

div > p {
  color: orange;
}

👉 <div> の直下にある <p> のみ対象。


3. 隣接セレクタ(A + B)

ある要素の直後にある兄弟要素を指定。

h1 + p {
  font-weight: bold;
}

4. 兄弟セレクタ(A ~ B)

指定要素の後にあるすべての兄弟要素を対象。

h1 ~ p {
  color: gray;
}

📌 属性セレクタ

HTML要素の属性を条件に指定できます。

a[target="_blank"] {
  color: red;
}

👉 target="_blank" を持つリンクだけ赤文字。

他にも:

  • [attr] → 属性を持つ要素すべて
  • [attr^="abc"] → "abc" で始まる属性値
  • [attr$="xyz"] → "xyz" で終わる属性値
  • [attr*="foo"] → "foo" を含む属性値

📌 擬似クラスセレクタ

ユーザーの操作や要素の状態に応じてスタイルを変えられます。

  • :hover → マウスを乗せたとき
  • :active → クリック中
  • :focus → フォーム入力中
  • :nth-child(n) → n番目の要素

例:ボタンのホバー時に色を変える

button:hover {
  background: #2ecc71;
}

📌 擬似要素セレクタ

要素の一部や仮想的な要素を装飾できます。

  • ::before → 要素の前に内容を追加
  • ::after → 要素の後に内容を追加
  • ::first-line → 最初の1行だけ装飾
  • ::first-letter → 最初の1文字だけ装飾

例:吹き出し風デザイン

.message::before {
  content: "💬 ";
}

🎯 セレクタの優先順位(重要)

複数のCSSが同じ要素に適用される場合、優先順位があります。

  1. !important が最強
  2. IDセレクタ(#id)
  3. クラスセレクタ(.class)、属性セレクタ、擬似クラス
  4. 要素セレクタ(p, div など)
  5. 続けて書かれた順(後勝ちルール)

👉 初心者は「なぜ効かない?」となりやすいポイントなので要注意。


📌 まとめ

  • CSSセレクタは HTML要素を選択するための仕組み
  • 基本 → 要素、クラス、ID、全称
  • 応用 → 子孫・兄弟・属性・擬似クラス・擬似要素
  • 優先順位を理解すると「効かないCSS」問題を解決できる

👉 初心者はまず クラスセレクタと擬似クラス をマスターするのがオススメです。


おすすめ記事

-CSS