IE6の
<!DOCTYPE宣言に関する情報

IE6にしたら画面が中央寄せになってしまった・・・!? これはIE6がインストールされているフォルダ内にあるreadme.txtに書いてあるものです。

標準準拠での問題
----------------
Internet Explorer 6 はより標準に準拠するように設計されています。 そのため、HTML コンテンツの見え方が以前のバージョンの Internet Explorer と違う場合があります。 大きな互換性問題の原因となる変更の多くは、HTML の特定の 宣言の部分以下のみに含まれています。 表示の問題が発生した場合は、コード内の <!DOCTYPE> 宣言をすべて削除して、 これらの変更について Developer Center の情報を確認してください (http://msdn.microsoft.com/ (英語情報))。

要するに、下記のような宣言を出力させてしまうと、標準的なHTMLとして動かないということですので、 あなたのホームページやCGIプログラム中にこの1文を見つけたら削除してください。

例えば
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

CGIプログラムなら例えば
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">\n";

なぜこのような問題が今発生しているのか・・・

上記はマイクロソフトの解説ですが、今回の一件はもっと重要な要素が含まれているそうです。 HTML3.2とHTML4.01とXHTML1.01では仕様が異なり、それを判別するためにDOCTYPE宣言を求めています。 IE6はDOCTYPE宣言を解釈し、 「Transitionalモード」「HTML4.0 Strictモード」「XMLモード」を事実上切り替えることができる初のブラウザです。 DOCTYPE宣言がない場合、IE6はHTML3.2互換モードをデフォルトとしていますが、 今後ブラウザがデフォルトを完全4.0モードとした場合、また問題が起きるのが容易に予想できるため、 上記の「DOCTYPE宣言を削除する」対処ではなく、

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

と、旧来の記述であることを明示的に宣言した方がいいかもしれないというご指摘をいただきました。 お名前を紹介していいのか不安だったので書きませんでしたが、 ご指摘をしていただいた方、ありがとうございました。


[戻る]