たまに見聞きする、HTML 3.2 以前の要素、メーカー独自の要素、出所不明の要素などです。 HTML 4, XHTML, ISO/IEC 15445:2000 以外の文書型で定義されているものを中心に挙げています。
誤解されやすい用語や事項、意味不明な用語などです。
<!-- -->
は、コメントタグではありません。マーク宣言の一種です。
<! 〜 >
は、SGML[J]ではマーク宣言と呼ばれます。
文書型宣言を示す <!DOCTYPE 〜 >
、
コメント宣言を示す <!-- 〜 -->
はおなじみでしょう。
ほか、CDATAブロックを示すマーク区間 <![CDATA[ 〜 ]]>
や、
無視されるべきブロックを示すマーク区間 <![IGNORE[ 〜 ]]>
などがあります。ただ、マーク区間については、サポートしているユーザエージェントは少ないようです。
<IMG>
や <BR>
は空要素タグではありますが、エンプティタグとは言いません。
エンプティタグとは、<>
や </>
のことです。
HTMLにまつわる事項をまとめてみました。 誤解されやすい事柄、どうでもいいようなことを中心にピックアップしています。
省略してはいけません。 よく、文書型宣言のないHTMLらしき文書を見かけますが、文書型が宣言されていないと、 どの仕様に基づいたHTMLなのかがわからず、ユーザエージェントが混乱します (現に、文書型によって挙動を変えるWebブラウザが存在します)。RFC1866 では、
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
This document type declaration refers to the HTML DTD in 9.1, "HTML DTD".
NOTE - If the body of a `text/html' message entity does not begin with a document type declaration, an HTML user agent should infer the above document type declaration.
つまり、「HTMLでもし文書型宣言が無い場合、HTML 2.0とみなす」 ということになりますが、RFC1866はRFC2854により廃棄されています。 そもそも、文書型宣言がない時点でHTMLの仕様から外れていますので、そういった文書がどのように解釈されても文句は言えません。
HTML 4.01 Strict の仕様を満たす最小の文書は、例えば、
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <TITLE>?</TITLE> <HR>
です。文法は間違っておりません。もっとも、これでいったい何を表現したいのか、さっぱりわかりませんが。
Table要素の内容定義は、文書型ごとに微妙に異なっています。DTDには以下のように定義されています。 細かいことですが、文書型を変更するときには、気をつけた方がよいでしょう。
(CAPTION?, (COL* | COLGROUP*), THEAD?, TFOOT?, TBODY+)
(caption?, (col* | colgroup*), thead?, tfoot?, (tbody+ | tr+))
(caption?, (col* | colgroup*), ((thead?, tfoot?, tbody+) | (tr+)))
(caption?, tr+)