HTMLには、次のバージョンがあります。
HTMLの各バージョンによる大まかなガイドは次の通りです。テーブルもフレームもずいぶん昔から存在してましたが、それはNetscape Navigatorなど一部のブラウザが独自に拡張したエレメントです。HTML3.2は、それら勝手に拡張されてしまったエレメントを整理し、取りこんだバージョンなのです。
| HTML2.0 | HTMLの基本構造を定義した仕様。見出しやフォームなどがふくまれる。 |
| HTML3.2 | HTML2.0に、フォント属性とテーブルを追加したもの。 |
| HTML4.0 | フレームおよびスタイルシートに対する拡張が行われたもの。 |
そしてHTML4.0では、後手に回ってブラウザメーカに勝手に拡張されないように、早い仕様発表が行われました。HTML4.0に完全に対応したブラウザは、現時点('98/04)ではまだ存在しません。仕様の方が先行するするという、当たり前のはずのことが始めて実現されたのです。
HTML4.0はさらに次の3つのバージョンに分かれています。
| HTML4.0 Strict | 完全なるスタイルシートサポートのためのHTML仕様。物理エレメントを廃止している。 |
| HTML4.0 Transitional | スタイルシートもサポートするが、過去の資産も残した折衷仕様。 |
| HTML4.0 Frameset | Transitonalにフレーム定義を加えた仕様。 |
HTML4.0で抹消されるエレメントには、U やFONT、CENETR などがあります。仮に、「HTML4.0にしか対応していないブラウザ」が存在したとすると、世界中のWebページの多くは、まともに表示されないでしょう。逆に厳格なHTML4.0で書いたページは、今現在は、だれもまともに表示できません。
ですので、現実に使うバージョンはHTML 4.0 Transitionalということになります。Strictは、将来的に破棄されるエレメントを明確に予告することで、世間にプレッシャーを与えたものです。
DOCTYPE宣言とは、文書が、どのHTMLバージョンで記述しているかを定義するものです。DOCTYPE宣言は、HTML文書の第1行目に<HTML>の宣言より前で行います。
HTMLのバージョンによる書き方は次の通りです。
とは言え、ブラウザはこのDOCTYPE宣言については、まったく無視してます。書いても何の役にもたちません。
しかし、ブラウザが無視するからといって、書き手も無視していい訳ではありません。キチンとした文書を書くのであれば、この宣言文は必ず書きましょう。
将来的に、ブラウザがこの宣言文を意識するようになることも考えられるのですから。