ZeroPlus Gateについて

\ シェア /

FacBook
Twitter
LINE
はてブ
PPocket
ZeroPlus Media > Web制作 > HTML/CSS > 【HTML】id属性とは? 使い方と特徴を解説

【HTML】id属性とは? 使い方と特徴を解説

HTML/CSS

2022/08/06

2023/06/02

html id使い方記事サムネイル

この記事では「HTMLのid属性」について解説します。

id属性はHTMLの属性の一つで、class属性と違って使用に関していくつかのルールがあります。ルールに従ってコーディングを行うことは、不具合を生み出さないために重要です。確実に理解しておきましょう。

この記事ではid属性について深堀りしています。ポイントを押さえながら学習していってください。

この記事で身につく内容
  • HTMLのid属性の使い方と基礎知識

HTMLのid属性とは

id属性はHTMLのタグに設定できる属性の一つです。属性とは要素に設定を付与することができるものです。属性はid属性の他にもclass属性やstyle属性などがあります。基本書式は次のようになります。

基本書式

<div id=”id”></div>
#id {
  スタイルを記述

}

 

基本書式にコードを当てはめると、次のようになります。

<div id="id"></div>
#id {
  width: 200px;
  height: 200px;
  background: orange;

}

出力結果

See the Pen html-id-基本 by ZeroPlus (@zeroplus-programming) on CodePen.

idにスタイルを適用する場合は、#id名 という記述になります。

ここからは、idの特徴を解説します。

 

id属性の特徴1:同名のidは複数使えない

id は、ページ内に同じid名を使うことができません。例えば次のようなHTMLではidを2つ設定しましたが、2つ目の同名idはNGです。

<div id="id"></div>

<!-- 同名のidはNG -->
<div id="id"></div>

<!-- id名が一つ目と違うのでOK -->
<div id="id2"></div>

3つ目のidは別名なので、こちらのidは使用できます。

この状態でCSSは適用できるのかというと、結論をいえば可能です。

<div id="id">id</div>

<!-- 同名のidはNG -->
<div id="id">id</div>

<!-- id名が一つ目と違うのでOK -->
<div id="id2">id2</div>
#id {
  width: 200px;
  height: 200px;
  background: orange;

}

#id2 {
  width: 100px;
  height: 100px;
  background: blue;

}

出力結果

See the Pen htnl-id-パターン by ZeroPlus (@zeroplus-programming) on CodePen.

 

ただしコーディングの規約上ではNGなので、例え同名のidにスタイルが適用されたとしても、同名のidを複数使うことはやめましょう。

 

もしスタイルを適用する場合は、idではなくclassに対して適用しましょう。

規約上の問題の他にも、例えばページ内リンクを使用する場合、同名のidが複数あると不具合が発生する問題が考えられます。

 

次のコードは、同名のidを使用した場合です。aタグをクリックすると、href属性と紐づいたid属性の要素に移動します。ただし、同名のidを使用しているため、2つめのid属性の要素に移動しないという不具合が発生しています。

<a href="#id" class="link">クリック</a>

<div id="id" class="box1">box1</div>

<div id="id" class="box2">box2</div>
.link {
  color: blue;
  font-size: 24px;
  margin-bottom: 500px;
  display: block;

}


.box1 {
  width: 500px;
  height: 2000px;
  background: orange;

}

.box2 {
  width: 500px;
  height: 2000px;
  background: red;

}

出力結果

See the Pen html-id-ボタン by ZeroPlus (@zeroplus-programming) on CodePen.

 

id属性の特徴2:id属性 はclass属性より優先順位が高い

CSSにはスタイルが適用される優先順位があります。ルールの一つは、後から書いたものが優先して適用される、というものです。以下のコードは、classに2種類のCSSを適用させたものです。

<div class="class"></div>
.class {
  width: 200px;
  height: 200px;
  background: red;

}


.class {
  background: orange;

}

出力結果

See the Pen html-スタイル優先 by ZeroPlus (@zeroplus-programming) on CodePen.

 

後から記述したスタイルが適用されたので、背景色がオレンジになりました。

これを踏まえて、次のコードではどちらのスタイルが適用されるでしょうか?

 <div id="id" class="class"></div>
#id {
  width: 200px;
  height: 200px;
  background: orange;

}

.class {
  background: red;

}

出力結果

See the Pen html-css-id-優先 by ZeroPlus (@zeroplus-programming) on CodePen.

idで指定したスタイルが優先されて適用されます。CSSの優先順位のルールで、後から記述したものが優先されるとありました。

idよりも後からclassでスタイルを指定しても、idで指定したスタイルが優先されて適用されます。

このことから、idはclassよりも優先順位が高いといえます。

しかしコーディングのルール上、基本的にはid属性にスタイルは適用せずに、class属性にスタイルを適用するようにしましょう。

 

id属性の使いどころ

id属性の使いどころとしては、以下の場合が考えられます。

  • ページに一つしかなくてもいい要素に指定
  • JavaScriptで特定の要素にだけイベントを発火させる

 

ページ内リンクは、href属性とidとで紐づけて設定することができます。次のコードは、aタグをクリックするとidと紐づいた要素に移動します。

 

ページ内リンク

<a href="#id" class="link">クリック。box1に飛びます</a>
<a href="#id2" class="link">クリック。box2に飛びます</a>

<div id="id" class="box1">box1</div>
<div id="id2" class="box2">box2</div>
.link {
  color: blue;
  font-size: 24px;
  display: block;

}


.box1 {
  margin-top: 500px;
  width: 500px;
  height: 2000px;
  background: orange;

}

.box2 {
  width: 500px;
  height: 2000px;
  background: red;

}

出力結果

See the Pen html-ページ内リンク by ZeroPlus (@zeroplus-programming) on CodePen.

この場合は、id属性を複数使っていますが、同名のid名を使っていないので正常に動作します。

 

下のコードは特定の要素にだけイベントを発火させるコードです。

ボタンにid属性を設定し、JavaScriptでidを取得しています。

ボタンをクリックすると、要素の背景色が切り替わる動きをします。

JavaScriptで特定の要素にだけイベントを発火させる

<button id="color">クリック</button>
<div class="box1">box1</div>
<script src="main.js"></script>
const button = document.getElementById("color");
const box = document.querySelector(".box1");

button.addEventListener('click', ()=>{
  box.classList.toggle('active');

});

出力結果

See the Pen Untitled by ZeroPlus (@zeroplus-programming) on CodePen.

 

まとめ

HTMLのid属性について解説しました。class属性に比べれば、自由度は減ります。またコーディング上の規約に触れる部分があるので、注意して使用しましょう。

HTMLには様々なタグの種類があり、タグ一つでも覚えることがたくさんあります。少しずつ学習を進めていきましょう。

 

Web制作は、その他にも学ぶべき知識が数多くあります。

Web制作初学者がWeb制作を学習するにあたって、押さえておくべき知識・技術は「Web制作学習ロードマップ」の記事にまとめています。どこまで勉強すればいいか分からない、次はどんなスキルを勉強すればいいか分からない、という方はぜひ参考にしてみてください!

 

HTMLのid属性まとめ

  • 同名のidはページ内で複数使うことができない
  • id属性はclass属性より優先順位が高い

 

\ 学んだことをSNSでシェアしよう /

おすすめのタグ

この記事の執筆者

ZeroPlus Media変種部

ZeroPlus Media編集部

ZeroPlusは、「フリーランス特化型プログラミングスクール」です。ZeroPlus Mediaでは、フリーランスとして活躍する際に役立つ有益なプログラミングやWeb制作に関する情報を発信しています。

質問について

ZeroPlus Media読者限定で質問対応をおこなっています。以下の2つの方法で質問を受け付けています。

選べる2つの質問方法

1

Google Foam(テキスト)で質問

mail

フォーム送信

メールで解答

formで質問
2

Google meet(オンラインmtg)で質問

meet

日時選択

メールを受け取る

メールからmtgに参加

meetで質問
ZeroPlus Gateについて

あなたの目的に合わせた2つのサービス

あなたの目的に合わせたZeroPlusの2つのサービス
基礎からフリーランスレベルまで本質的な学びを提供しています

完全無料!30日間で学びきれる
プログラミンスクールZeroPlus Gate

  • お金をかけずに、学習を進めたい
  • Webサイトを作れるようになりたい
  • メンターや講師に質問しながら学習したい

詳しくはこちらから

フリーランス特化型
プログラミングスクール ZeroPlus

  • プログラミング学習で悩んでいる
  • 仲間と一緒に学習したい
  • フリーランスとしての総合的な力を養いたい

詳しくはこちらから