IE6でXML宣言をすると互換モードになる

XHTMLでは、XML宣言をする必要がありますが、IE6ではDOCTYPE宣言の前に半角スペースや改行以外の文字列があると、互換モードなってしまい、marginのautoによるセンタリングができなっくなったり、widthにpaddingの値が含まれたりとレイアウトが崩れることがあります。

この不具合(バグ)は、以下何れかの方法で解消することができます。

XML宣言を行わない

XHTMLでは、XML文書であるためXML宣言が必須とされていますが、文書のcharsetがUTF-8またはUTF-16か、HTTPヘッダーでContent-Typeが正確に設定されていれば、XML宣言を省略することができます。

XHTMLで書かない

XML文書以外で書いてしまう方法です。

CSSハックを使用してIE6のみ別の指定を行う

CSSハックを使用してIE6のみ別の指定を行う方法です。
余分な指定が入ってしまうため、メンテナビリティが損なわれたりします。