DOCTYPE宣言と表示モード
IE等のブラウザには、読込むHTMLのDOCTYPE宣言の有無や種類によって、大きくわけて2種類の表示モードがあります。
表示モードは CSS や HTML の解釈を変える機能のことで、その2種類は、standards mode(標準準拠モード)とquirks mode(後方互換モード)です。
標準準拠モードは、CSSやHTMLの仕様に準拠した厳格な表示モードです。
後方互換モードは、CSSやHTMLの仕様に準拠していない古いブラウザとの互換のある表示モードです。
標準準拠モードと後方互換モードでの表示の仕方の違いは、主に以下の通りです。
- 後方互換モードでは、HTMLで色指定に『#』がなくてもOK
- 後方互換モードでは、CSS で色指定に『#』がなくてもOK
- 後方互換モードでは、数値に単位が無くてもOK
- 後方互換モードでは、数値と単位の間に空白があってもOK
- 後方互換モードでは、キーワードが "" で括られてもOK
- 後方互換モードでは、標準フォントサイズがsmallになる(標準準拠モードではmedium)
- 後方互換モードでは、width,heightの計算でボーダーとパディングを含む(標準準拠モードでは含まない)
- まだあります。参考リンクを参照してください。
IE8では、標準準拠モードがデフォルトとのことで、これからはなるべく、標準準拠モードが推奨かも。
IE7以下では、後方互換モードがデフォルトで、標準準拠モードにするには、DOCTYPE宣言にシステム識別子を含めます。
つまり、DOCTYPE宣言無しや、あってもシステム識別子を含めないと後方互換モードになってしまうのです。
ちなみに、システム識別子とは、以下のDOCTYPE宣言での"http://www.w3.org/TR/REC-html/40/strict.dtd"の部分です。
DOCTYPE宣言
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html/40/strict.dtd">