DOCTYPE宣言を書く
DOCTYPE宣言は長い文字列ですが、書く内容は決まっていますので、まるまるコピー&ペーストしてしまえば問題ありません。
自分が記述したいHTMLのバージョンが分かっている場合は、そのバージョンに対するDOCTYPE宣言を書きます。 分からない場合は、とりあえず「 HTML 4.01 Transitional 」のDOCTYPE宣言を書いておけば良いでしょう。
以下のDOCTYPE宣言は、どのブラウザでも「標準モード」として解釈されます。
●HTML 4.01 Strict
「HTML 4.01 Strict」は、HTML4.01で定義されている要素や属性のうち、利用しないことが望ましいとされている「非推奨」な要素や属性を一切使わないで記述したHTMLであることを示すDOCTYPE宣言です。 このDOCTYPE宣言を書いた場合は、b要素(<b>~</b>)で太字にしたり、font要素で文字サイズや色を指定することはできません。(それらの装飾にはスタイルシートのみを使います。)
※システム識別子(後半のURL)を省略すると、Mac版IEでは「互換モード」になってしまいます。
●HTML 4.01 Transitional
「よく分からないけど標準モードで描画させたい」場合は、とりあえずこのDOCTYPE宣言を書いておきましょう。
「HTML 4.01 Transitional」は、HTML4.01で定義されている要素や属性のうち、「非推奨」となっているものも含めて利用しているHTMLであることを示すDOCTYPE宣言です。 (望ましくはありませんが、b要素で太字にしたり、font要素で文字サイズを変更しても、文法違反にはなりません。)
※システム識別子(後半のURL)を省略すると、どのブラウザでも「互換モード」になってしまいます。省略せずに全部書いて下さい。
●XHTML 1.0~1.1
XHTMLのDOCTYPE宣言なら、どのバージョンでも標準モードで描画されます。以下は、XHTML 1.1の場合のDOCTYPE宣言です。
XHTMLを使う場合は、DOCTYPE宣言の前にXML宣言が必要です。しかし、それを書いてしまうとIE6は「互換モード」でしか表示しなくなる問題があります。 詳しくは、「補足:XHTMLを使う場合の注意点」をご参照下さい。 (XHTML1.1以外のDOCTYPE宣言についても、この補足ページで紹介しています。)
※XHTMLでは、システム識別子(後半のURL部分)は省略できません。
※XHTML 1.0 のDOCTYPE宣言でも「標準モード」で表示されます。
●そのほか
HTML 4.01 の1つ前のバージョンである HTML 4.0 用のDOCTYPE宣言では、「Strict」の場合ならどのブラウザも「標準モード」で表示します。 「Transitional」の場合は、どう書いてもどのブラウザも「互換モード」で表示します。
HTML 4.01ではなく、HTML 4.0を使って記述する必要はないと思いますので、HTML 4.01のDOCTYPE宣言を使っておきましょう。
おわりに
今回ご紹介してきたように、DOCTYPE宣言を書かないと、(IE7であっても)最新のスタイルシートなどが表示に反映されません。 特にこれから新しくHTMLを書く場合は、(「標準モード」として解釈される)DOCTYPE宣言を忘れずに書いておくようにしましょう。
【関連記事】