HTMLで同一タグにidとclassを設定するのはなぜ?
Q&A
質問
今HTMLを学習中なのですが、下記のように同一タグ内に「id」と「class」を
同時に設定する場合とかあるのでしょうか、
<section id="firstview" class="firstview" id="firstview"></section>
あるとすれば道のような場合か教えていただけると助かります。
よろしくお願い致します。
Q&A
今HTMLを学習中なのですが、下記のように同一タグ内に「id」と「class」を
同時に設定する場合とかあるのでしょうか、
<section id="firstview" class="firstview" id="firstview"></section>
あるとすれば道のような場合か教えていただけると助かります。
よろしくお願い致します。
html id class これで検索するだけで親切な説明が山ほど出てきますよ
id
はidentification
(識別)、class
はclassification
(分類)を示します。
役割が違いますので同時に指定することはもちろんあります。
id
は識別するためのものなのでドキュメント(html)の中でユニークである必要があります。
対してclass
は分類を示すのでドキュメントの中でユニークである必要はなく(同じclass
のタグが複数存在することも許容されている)、かつ複数指定することが出来ます。
殆ど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が定義されるケースがあります。