CSS

ID

初級

読み方:アイディー|英語:Id

ページ内で1つだけの名前をつける属性で、CSSでは #id名 で指定するよ。

やさしい説明

ID(アイディー)とは、HTML要素に固有の名前をつける属性です。1ページに同じIDは1つだけしか使えません。

学校の「出席番号」に例えるとわかりやすいです。出席番号は1人に1つだけ。classが「グループ名(役職)」なら、idは「個人番号」です。

CSSでは #ID名 で指定します。JavaScriptの getElementById でも使います。ページ内リンク(#section1 へジャンプ)の目印にもなります。

具体例・使い方

<!-- HTML: id属性を付ける -->
<header id="top">ヘッダー</header>
<main id="main-content">メインコンテンツ</main>
<footer id="footer">フッター</footer>

<!-- ページ内リンク: #id名でジャンプ -->
<a href="#top">ページの先頭に戻る</a>
<a href="#main-content">本文に移動</a>
/* CSS: #でidを指定 */
#top {
  background: #333;
  color: white;
  padding: 16px;
}
// JavaScript: idで要素を取得
const header = document.getElementById("top");
header.style.background = "navy";

idの主な使いどころ

  • ページ内リンク<a href="#section2"> でページ内の特定箇所にジャンプ。目次リンクによく使われる
  • JavaScriptでの要素取得document.getElementById("id名") で確実に1つの要素を取得できる
  • フォームのlabelとinputの紐付け<label for="email"><input id="email"> を対応させる
  • アクセシビリティ — スクリーンリーダーが要素を識別するために使う

フォームでのid活用例

<!-- labelのfor属性とinputのidを一致させる -->
<label for="username">ユーザー名</label>
<input type="text" id="username" name="username" />

<!-- labelをクリックするとinputにフォーカスが移る -->
<label for="email">メールアドレス</label>
<input type="email" id="email" name="email" />

labelinput を紐付けると、ラベルをクリックしたときに入力欄にフォーカスが移ります。スマホでの操作性とアクセシビリティが向上します。

いつ使う?

ページ内リンクの目印、JavaScriptで特定の要素を1つ操作するとき、フォームのlabel-input紐付けに使います。CSSスタイルの適用には原則classを使い、idは「1ページに確実に1つだけ」の要素に絞るのがベストプラクティスです。

間違いやすいポイント

❌ 同じIDを複数の要素に使う

IDは1ページに1つだけのルールです。複数に使いたい場合はclassを使いましょう。同じIDが複数あるとJavaScriptが最初の要素しか取得できなくなります。

❌ スタイル指定にIDを多用する

IDセレクタ(#名前)は詳細度(優先度)が高すぎて、後からclassで上書きしにくくなります。スタイルにはclassを使うのが基本です。

よくある疑問

Q: IDとクラスはどちらを使うべき?

A: 基本的にはクラスを使いましょう。IDはJavaScriptで要素を取得するときや、ページ内リンクのアンカーに使います。

Q: IDを2つの要素に使うとどうなる?

A: HTMLの仕様違反です。JavaScriptのgetElementByIdが最初の1つしか取得できず、バグの原因になります。

Q: IDの命名ルールは?

A: 半角英数字とハイフン(-)を使います。数字で始めるのはNG。スペースは使えません。例: id="main-content"

関連用語

  • クラス — 複数の要素にスタイルを適用する属性。idと対比して覚える
  • セレクタ — CSSで要素を指定する記法。idは #名前 で指定
  • DOM — JavaScriptがHTMLを操作するための仕組み

📖 関連レッスン

レッスンを見る →

関連ブログ記事

⚠️ 関連するエラー

❓ 関連するQ&A