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

View in English Always switch to English

クラスセレクター

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。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;
}

仕様書

仕様書
Selectors Level 4
# class-html

ブラウザーの互換性

関連情報