目次
はじめに
CSSで要素を指定するときに使う class と id。「どっちを使えばいいの?」「# と . の違いは?」と迷いますよね。この記事では、2つの違い・書き方・絶対に守るべきルールまで、コード付きで解説します!
classとidの違い
- class:複数の要素に同じ指定ができる。再利用OK。CSSでは
.(ドット) - id:ページ内で1つだけのユニークな指定。CSSでは
#(シャープ)
classの使い方(複数で使い回す)
<p class="highlight">スタイルあり</p>
<p>スタイルなし</p>
<p class="highlight">スタイルあり</p>.highlight {
background-color: yellow;
color: red;
}同じ class を付けた要素すべてに適用されます。
idの使い方(1つだけのユニーク指定)
<p id="lead">この段落だけ特別なスタイル</p>#lead {
background-color: blue;
color: white;
}比較表
| class | id | |
|---|---|---|
| 使用回数 | 複数OK | ページ内で1つだけ |
| CSSの記号 | .(ドット) | #(シャープ) |
| JavaScript | getElementsByClassName | getElementById |
つまずきポイント
- ❌ 同じidを複数の要素に使う → ルール違反。動作が不安定になるので、使い回すなら
class - ❌ idのCSSが強すぎて上書きできない → idは「詳細度」が高く後から上書きしにくい。装飾は基本classで行うのがおすすめ
実務では、idをCSSにほぼ使わない
意外に思うかもしれませんが、装飾(CSS)の目印にはidをほとんど使わず、classで統一するのが実務では一般的です。理由は記事内でも触れた「詳細度」。idはCSSの優先度が高すぎて、後から上書きしようとすると効かず、!importantに頼りたくなる…という悪循環に陥りがちです。
私も駆け出しの頃にidで装飾して大変な目に遭い、それ以来「装飾はclass、idはCSS以外の用途」と切り分けるようになりました。
idが本当に活きる3つの場面
- ページ内リンク:
<a href="#contact">でその場所へジャンプ - JavaScriptの目印:
document.getElementById()で一発で取得 - フォームのラベル紐付け:
<label for="email">と<input id="email">をつなぐ(クリック範囲が広がりアクセシビリティ向上)
「装飾=class/目印=id」と覚えておくと、迷わなくなりますよ。
まとめ
- class=使い回す(
.)、id=1つだけ(#) - 装飾は基本
class、idはJSの目印やページ内リンクで活躍 - 同じidの重複はNG
classとidを正しく使い分けると、CSSもJavaScriptもグッと書きやすくなります。学習や制作で詰まったら、ポートフォリオやココナラもどうぞ。


