また、HTML4.0では以下のDTDが使用可能です。 HTML文書には文頭にこれらを定義するようになっています。(HTML文書への定義方法)
HTML文書には、常にDTD(Document Type Definition) の使用している バージョンを明記しなければ なりません。HTML4.01に関してのDTD詳細は他に譲るとして、ここではバージョンの明示の仕方を 説明します。HTML4.01には3つのバージョンがあり、将来的に1つに統合されていく予定です。 廃止予定とは将来的なもので、W3Cは期間を言明はしておりません。また、 非推奨となっている 要素、属性は廃止予定の項目です。
私自身あまり大きな事は言えませんが、ブラウザメーカが勝手に拡張した要素や属性を含む場合、 基本的にそれに該当するバージョンは存在しません。こういう場合は、バージョンの明記は 避けた方が好ましいものです。しかし、HTML文書にはバージョンを明記する必要があります。 つまり、メーカが勝手に作った要素や属性は極力使用しないようにすることが良いと 言ってるのです。(例えば、<MARQUEE>などが代表例です)
あらゆるHTML文書の行頭にバージョンを明示する文を加えなければなりません。 この文は、HTML要素の外で構いません(HTML文書の1行目)。
DOCTYPEが宣言されていないHTML文書は、HTML2.0仕様書によると「ブラウザはHTML2.0として扱え
」と
なっていますが、HTML4.01ではこの考え方では現状に対応できないとの見解を示しております。
つまり、それなりのバージョンとして扱った方がいいとのことでしょう。
全要素、属性に対して、誤った記述をブラウザ側で正常に表示するように求めており、 このDOCTYPEの明示如何に関わらず、正常に表示されるはずです。ただし、誤った記述に 依存したHTML設計は良くないとのことも明言していますので、我々がHTMLを書く場合、 常に文法に気を使わなければなりません。
文法チェックはこちらのサイトで可能です。 http://www.vector.co.jp/htmllint/htmllint.html
参考に以前のバージョンについても追記しておきます。
符号化方式によっては、全ての文字を表示できるとは限りません。 これは、コンピュータの環境や能力によるもので、これに対してSGML式文字参照を利用することで解決できます。 HTMLでの「文字参照(Character references)」では、「数値文字参照」「文字実体参照」 の2種類があります。
数値文字参照では、文書文字集合に関してコード位置を示すもので、10進数、16進数の2つの形式が用意されています。
文字実体参照では、より直感的に理解しやすいように文字や記号による文字参照ができます。 例えば、「å」は小文字の「aリング」を参照するものですが、同じ文字の数値文字参照「å」より直感的に覚えやすく、理解しやすくなっています。 ただし、文書文字集合のすべての文字に対して文字実体参照を定義しているわけではなく、ほんの一部にすぎません。 また、大文字小文字を区別します。特に以下の4つの文字はHTMLで頻繁に使用されます。これらはタグの開始記号や属性値の指定、 文字参照の頭文字記号などに使用されるためです。
HTMLに定義されている要素のほとんどは、「ブロックレベル要素」「インライン要素」に分類することができます。 また、BODY要素内に記述できる要素はブロックレベル要素のみです。 一般的にインライン要素をBODY要素内に記述した場合、ブラウザが自動的にブロックレベル要素を補完してくれます。 しかし、文法的にはDIV要素などを使用し、ブロックレベル要素を入れることが正しいものです。
ただし、例外的なこともあります。例えば、A要素、P要素の場合は、ネストができないことになっており A要素内にA要素を記述することはできません。 また、段落のP要素内に、テーブルやリストなどを記述することもできません。 P要素は終了タグが省略可能なため、よくこれらの間違いが発生します。 よくある間違いは、インライン要素内にブロック要素を記述している例です。例えば、以下のような例がそれに当たります。 下記の例は、インライン要素A内にブロックレベル要素Pが含まれており、 ブラウザ上での表示はできても、HTML文法的には間違いです。 こういう場合は、各要素の順序を逆にすれば問題解決できます。
<A Href="./test.html">
<P>テストページへジャンプします。</P>
</A>
ADDRESS | BLOCKQUOTE | CENTER | DIR | DIV | DL | FIELDSET | FORM |
Hx | HR | ISINDEX | MENU | NOFRAMES | NOSCRIPT | OL | P |
PRE | TABLE | UL |
A | ABBR | ACRONYM | APPLET | B | BASEFONT | BDO | BIG |
BR | BUTTON | CITE | CODE | DFN | EM | FONT | I |
IFRAME | IMG | INPUT | KBD | LABEL | MAP | OBJECT | Q |
S | SAMP | SCRIPT | SELECT | SMALL | SPAN | STRIKE | STRONG |
SUB | SUP | TEXTAREA | TT | U | VAR |