LoginSignup
shimacaze
@shimacaze

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

HTMLで同一タグにidとclassを設定するのはなぜ?

Q&A

質問

今HTMLを学習中なのですが、下記のように同一タグ内に「id」と「class」を
同時に設定する場合とかあるのでしょうか、

<section id="firstview" class="firstview" id="firstview"></section>

あるとすれば道のような場合か教えていただけると助かります。
よろしくお願い致します。

0

3Answer

ididentification(識別)、classclassification(分類)を示します。
役割が違いますので同時に指定することはもちろんあります。

idは識別するためのものなのでドキュメント(html)の中でユニークである必要があります。
対してclassは分類を示すのでドキュメントの中でユニークである必要はなく(同じclassのタグが複数存在することも許容されている)、かつ複数指定することが出来ます。

0Like

殆どclose案件ですが一言

同一タグ内に「id」と「class」を
同時に設定する場合とかあるのでしょうか?

同時にはない!、しかし、結果としてある!

<table>
<tr id="view" name="view" class="view">省略</tr>
<tr id="view" name="view" class="view">省略</tr>
<tr id="view" name="view" class="view">省略</tr>
<tr id="view" name="view" class="view">省略</tr>
</table>

これは、HTLMではidがユニークでないのでNGです。しかし、殆どのブラウザは許容します。
 id,name,classはtag(tr)を識別するためのものです。よって、idは1ページのhtmlの中ではそのtagがユニークな識別であるべきです。

一方、class,nameタグは1ページのhtmlの中で、1つのグループを特定できる識別であるべきです。例えば、nameならラジオボタン、classなら、テーブルのth,tdでしょうか?

では、id="view" name="view" class="view のように同じviewを用いていいの? htmlではダメとも良いとも明言していない記憶があります。

理由はid,name,classは干渉しない独立した
属性だからです。

よって、同時に設定することは自由です。

<table>
<tr class="view">省略</tr>
<tr class="view">省略</tr>
<tr class="view">省略</tr>
<tr class="view">省略</tr>
</table>

次のようにfirst、lastが後で追加されると同様にid="view03" 、が後で追加されるときもあります。

<table>
<tr class="first view">省略</tr>
<tr class="view">省略</tr>
<tr id="view03" class="view">省略</tr>
<tr class="last view">省略</tr>
</table>
tr.view {color: "blue";}
tr.first, tr.last {color: "black";}
tr#view03 {color: "red";}

このように、あと付けで結果として同じタグに、id,calssが定義されるケースがあります。

0Like

Your answer might help someone💌