DOCTYPE宣言とは

DOCTYPE宣言とは、その文書がどのバージョンのHTMLで、どの仕様に従って作られているのかをブラウザに伝えるためのものです。

HTML 4.01のルールでは、この宣言が必須とされています。仕様に準拠した文書を作成するのであれば、この宣言を必ず記述しておく必要があります。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
 
</head>
<body>

</body>
</html>

このDOCTYPE宣言は、文書の一番最初(html開始タグよりも前)に記述します。

3種類のDTD

DTD(文書型定義)とは、そのバージョンのHTMLで使用することができる要素と属性、要素の配置に関するルールなどを定義しているものです。

このDTDには、Strict(厳密型)、Transitional(移行型)、Frameset(フレーム設定用)の3種類があり、それぞれの記述方法や意味は次のようになります。

  • 以下は、HTML 4.01の記述例となります。
Strict … HTML4.01のルールに厳密かつ正確に従う指定

非推奨の要素や属性は使うことができず、要素の配置に関しても細かい決まりごとがあります。また、フレームも使用することができません。

URIを含めた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

URIを省いた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
Transitional … Strictより緩やかな指定(フレームは不可)

非推奨の要素や属性を使用できますが、フレームは使用することができません。

URIを含めた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

URIを省いた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Frameset … Transitionalにフレームを加えた指定

Transitionalに加え、フレームを使用できるようにした指定です。フレームを設定する文書では、このDOCTYPE宣言を記述します。

URIを含めた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

URIを省いた指定
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

表示モードについて

一般的なブラウザには、標準モード互換モードという2つの表示モードが備わっています。

標準モード
文法を正しく解釈する表示モードです。文法ミスは無視されます。
互換モード
過去のバージョンと互換性のある表示モードです。文法ミスはある程度許容され、ブラウザがうまくカバーして表示してくれます。
  • 解釈の違いにより、標準モードと互換モードでは表示のされ方も多少違ってきます。

この表示モードは、DOCTYPE宣言の記述にURIを含めるかどうかによって、自動的に切り替わる仕組みになっています。表示モードの切り替わり方については、次の項目を参考にしてください。

DOCTYPE宣言と表示モードの関係

DOCTYPE宣言の記述にURIを含めるかどうかにより、ブラウザの表示モードは次のように切り替わります。(古いバージョンを除く)

DTD URI IE Firefox Opera
Strict 有り 標準モード 標準モード 標準モード
無し 標準モード 標準モード 標準モード
Transitional 有り 標準モード 標準モード 標準モード
無し 互換モード 互換モード 互換モード