xml宣言について

xhtml文書にはxml宣言を記述する事が強く奨励されています。xml宣言の有無によって、DOCTYPEスイッチと言われる標準準拠モード(W3Cの仕様に準拠)か後方互換モード(正しく解釈しない古いブラウザ用)かの切り替えが行われます。宣言することによってW3Cに準拠した解釈(描画)をするのですが、IE6.0では文書型宣言(<!DOCTYPE〜>)の前に文字が存在すると、後方互換モードになってしまい、つまりxml宣言ですらもその対象となってしまう酷いバグがあります。

XML宣言Gecko系MacIE5.xWinIE6Opera7.x
なし標準準拠モード標準準拠モード標準準拠モード標準準拠モード
あり標準準拠モード標準準拠モード後方互換モード標準準拠モード

標準準拠から後方互換にすると変化するもの

text-alignに関して
後方互換ではtext-alignの指定がインライン要素だけでなく、divなどのブロック要素にも反映される
文字サイズに関して
後方互換ではブラウザデフォルトの文字サイズがひと回り小さい、つまりsmallがmidium相当
ボックスサイズに関して
後方互換ではwidthとheightの値にpadding、borderのサイズも含めてしまう

その他margin: auto;でブロック要素のセンタリングが出来ない、CSSの記述に対して厳しくなり、pxなどの単位をきちんと指定しないとプロパティごと無視される等色々あります。xml文書と言うことでは、やはり宣言しなければいけないのですが、Mac IE4.5ではHTMLとしての解釈ができず、そのままソースを表示してしまうバグがあったりと、古いブラウザを考えるとちょっと厳しいものがあります。ちなみにXML のデフォルト値であるUTF-8、UTF-16はxml宣言の省略が可能とされているのですが、何となく気持ち悪い(笑)ので暇があったら、ソースとCSS周りをゴニョゴニョやって宣言を記述する予定。

この記事についての情報

似た内容の記事

この記事に対するトラックバック

トラックバックURL: http://www.lucky-bag.com/mt/mt-tb.cgi/333

ssabtb - Movable Type3.3をカスタマイズ その2 xml宣言とDOCTYPE宣言の指定 (2007年5月11日 22:24)

xml宣言とDOCTYPE宣言を指定する理由 Movable Typeのテンプレ... 続きを読む

Comments