質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

153閲覧

HTMLのidとclassについて

enigumann

総合スコア14

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

0クリップ

投稿2018/06/26 15:49

ホームページ制作の勉強を今しているのですが、
HTMLで
<id>は一回しか使えなくて、
<class>は何回も使えると書いていたのですが、
それをみて<class>だけ使うだけでいいんじゃないかと思いました。
<id>を使うメリットがあれば教えていただきたいです。
よろしくお願いします。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

ページ中に一つしかないということ自体がメリットです

javascriptでgetElementByIDは必ず特定の一つの要素を指し、複数を取得することはない
一つ見つかればそれ以上探さないので取得処理も早い

cssにおいてもIDで指定すれば、ページ中の一つの要素にしか適用したくないスタイルを
誤って兄弟・子孫要素に適用してしまうということがありません

アンカーリンクに用いることができるということももちろんですが
タブやライトボックス、あるいはスライドショーなどの
ウィジェットのリンクにおいてもIDが用いられることが多いのは
ページ中に要素が唯一であることが保証されるからこそ

labelとinputの対応もIDによってされます
これもページ中に要素が唯一であることが保証されるからこそのこと

一つしかないということが保証されるということは
制作物が複雑で機能的になっていくほどメリットが大きくなります

投稿2018/06/26 16:34

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumann

2018/06/30 07:15

ご回答ありがとうございました! 私の中で一番わかりやすく納得できたのでベストアンサーにさせていただきました!
guest

0

CSSを適用する場面において、idを使う意味はそれ程無いと思います。
javascriptを利用する場面において、特定の要素を取得できるので便利に使用することが出来ます。
javascriptでclassが指定された要素から特定の要素を探す場合には複数ある場合があるので、ひとつひとつチェックしなければならず難しくなってきます。

投稿2018/06/26 19:12

efcode

総合スコア422

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumann

2018/06/30 07:19

ご回答ありがとうございました! javascriptも使おうと思うのでしっかり理解しときます!
guest

0

「id は ドキュメント内に1個しかない」ということが保証されているので、JavaScript などプログラミング言語にとっては一つ見つければ、それ以降のドキュメントを探す必要がないことになり、検索時間が短縮できるメリットがありますね。

javaScript

1var elem = document.getElementById('identity');

「Classはドキュメント内に複数あるかもしれない」ので、一個見つけても他にはないのかをドキュメントの最後まで探さなければいけない。

javaScript

1var elems = document.getElementsByClassName('classname');

投稿2018/06/26 16:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumann

2018/06/30 07:16

ご回答ありがとうございました! 例文まで作っていただき、参考になりました! ありがとうございます!
guest

0

既に回答が出ていますが、色々ときちんと記事も読まれた方が良いです。
メリットデメリット、使い道など詳しく書いてくれている記事もたくさんあります。
※おそらく語りつくされているものなのでteratail内にも質問がありそうです

id属性を使うと「ページ内リンク」も作れる
id属性とclass属性では、スタイルが適用される優先度が異なる
すべての装飾にclass属性を使っているのであれば、それでも構いません。しかし、うまく使い分ければ読み解きやすいCSSソースになるでしょう。

ここまでidとclassの違いについて説明してきましたが、ここまで読んで、「classは一つでも複数でも使えるなら、idを使う必要はないのではないか」とお思いになるかもしれません。

実はその通りであり、実際にclassのみを使用しても問題はありません。では、なぜidを使うのか。それは、「わかりやすさ」の面から使用するのではないでしょうか。
idとclassを分けることで、「大まかなレイアウトの部分」と「その他」で分類し、修正や変更をしやすくするという、メンテナンス性の向上が図れるのです。
例えば、レイアウトから文字の色まですべてclassで指定すると、レイアウト部分を修正しようとした時に、どこの要素でそのレイアウトを指定しているのか、探さなければなりません。
それを、「idで大まかなレイアウトを指定、classでそれ以外を指定」という風に使い分けることで、「レイアウトを指定しているのはidだから、ヘッダーのレイアウトを変更するのなら#headerを探せばいいな」というように、一見してメンテナンスのしやすさが大きく変わり、修正や変更の効率が上がります。加えて、コメントも併用するとさらにソースが見やすくなります。

Classはブラウザの中では特に特別な能力はありませんが、IDは1つとっておきの切り札を隠し持っています。それは何かというとURL上での「ハッシュ値」です。

などなど

記事を一通りきちんと読んでいただければ分かるかと思いますが、
IDの方が要素を特定できる故の便利な使い道が沢山あります。

投稿2018/06/27 01:05

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enigumann

2018/06/30 07:21

ご回答ありがとうございます! 参考のページを乗せていただきありがとうございます! 読んで理解を深めていきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問