最近のブラウザは、その(X)HTML文書がどの仕様・バージョン・文法に従って書かれているかを示す「宣言」を解釈し「標準準拠モード」(W3Cの仕様に準拠)と「後方互換モード」(W3Cの仕様に準拠していない)とを切替えて表示しています。
宣言には「XML宣言」と「DOCTYPE宣言」とがあり、このブログを例にとって見ると以下の二つです。
XML宣言
<?xml version=”1.0″ encoding=”EUC-JP”?>
DOCTYPE宣言
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
XHTML文書には「XML宣言」を記述することが推奨されていますが、IE6.0では「DOCTYPE宣言」の前に文字が存在すると、「後方互換モード」になるというバグがあります。
つまり、XHTMLでコーディングをするとIE6.0では「後方互換モード」、その他のブラウザでは「標準準拠モード」と必ず表示に違いがでます。
文字コードがXMLのデフォルト値である、UTF-8かUTF-16の場合「XML宣言」を省略できることになっていますが、HTML-lintだと点数を引かれたり、どうしてもXML宣言を外せないという場合を考え、「後方互換モード」と「標準準拠モード」のどちらで表示しても対応出来るコーディングテクニックを覚えましょう。