このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

クラスセレクター

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

CSSクラスセレクター (class selector) は、 class 属性の内容に基づいて要素を選択します。

css
/* class="spacious" であるすべての要素 */
.spacious {
  margin: 2em;
}

/* class="spacious" であるすべての <li> 要素 */
li.spacious {
  margin: 2em;
}

/* "spacious" および "elegant" の両方をクラスリストに含む <li> 要素すべて */
/* 例えば、 class="elegant retro spacious" */
li.spacious.elegant {
  margin: 2em;
}

構文

css
.class_name {
  /* … */
}

なお、これは次の属性セレクターと等価です。

css
[class~="class_name"] {
  /* … */
}

class_name の値は有効な CSS 識別子でなければなりません。有効な CSS 識別子ではない HTML の class 属性は、クラスセレクターで使用する前にエスケープする必要があります。

有効なクラスセレクター

HTML

html
<p class="red">この段落は赤い文字です。</p>
<p class="red yellow-bg">
  この段落は赤い文字で、黄色の背景です。
</p>
<p class="red fancy">この段落は赤い文字で、"fancy" スタイルです。</p>
<p>これは単なる通常の段落です。</p>
html
<!-- 次の 2 つの段落には、CSS でエスケープしなければならない文字を含む
クラス属性が設定されています -->

<p class="item?one">この段落はピンクの背景です。</p>
<p class="123item">この段落は黄色の背景です。</p>

CSS

css
.red {
  color: #ff3333;
}

.yellow-bg {
  background: #ffffaa;
}

.fancy {
  font-weight: bold;
  text-shadow: 4px 4px 3px #7777ff;
}
css
/* 次の 2 つのルールでは、クラス属性はエスケープしなければならない */

.item\?one {
  background-color: pink;
}

.\00003123item {
  background-color: yellow;
}

結果

無効なクラスセレクター

次のルール内のクラスセレクターは、有効な CSS 識別子ではないため、無視されます。

css
.item?one {
  background-color: green;
}

.123item {
  background-color: green;
}

仕様書

Specification
Selectors Level 4
# class-html

ブラウザーの互換性

関連情報