IE7でCSSレイアウトが崩れる原因でありそうなこと

KAZUMiX2006-11-03

IE7ベータ時代に書いたIE7CSSに関するエントリー*1のアクセス数が今になって爆発している。しかし、ベータでは問答無用で無効だったアンダースコアハックが、IE7正式版では後方互換モードで復活するなど、状況が変わってしまったので、ここで取り急ぎ整理しておきます。

アンダースコアハックは標準準拠モードでは無効

後方互換モードなら有効。正直、ベータの時は、何のための後方互換か!と、かなり憤っていた。落ち着くべきところに落ちついた感じだ。
と言うわけで、標準準拠モードを前提にしていたにもかかわらずアンダースコアハックを利用していた場合、IE7では期待通りの表示にならないことになります。

XML宣言があると後方互換モードになるバグがIE7で修正された

正確には、DOCTYPE宣言の前に何らかの記述があると、問答無用で後方互換モードになるバグが修正された様だ。
したがって、DOCTYPE宣言は標準準拠だが、XML宣言有りのためにIE後方互換モードとなることを前提にして作られたCSSは、IE7で期待通りにならない可能性がある。

対策

標準準拠モードなら標準に準拠し、アンダースコアハックに頼らない。
まぁ元々そうあるべきだったことを、徹底しなければならなくなったとうことですね。