はじめに

CSSで要素を指定するときに使う classid。「どっちを使えばいいの?」「#. の違いは?」と迷いますよね。この記事では、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;
}

比較表

classid
使用回数複数OKページ内で1つだけ
CSSの記号.(ドット)#(シャープ)
JavaScriptgetElementsByClassNamegetElementById

つまずきポイント

  • 同じ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つだけ(#
  • 装飾は基本 classid はJSの目印やページ内リンクで活躍
  • 同じidの重複はNG

classとidを正しく使い分けると、CSSもJavaScriptもグッと書きやすくなります。学習や制作で詰まったら、ポートフォリオココナラもどうぞ。