このブログについて


IE7beta2とAlternate Box Model Hacks

IE7beta2が公開されましたが、Alternate Box Model Hacksを用いたページはとてもやばい感じに表示されます。

width: 100px !important;
width /**/: 150px;

なんて記述をしていたわけですが、IE7はbeta2の段階では、IE6と同様、同宣言内の!important規則を無視して扱っているようですので、単純に後に記述したほうの値を優先しようとします。

IE6(標準準拠モード時)の場合、ここで「 /**/(空白文字+コメント)」のハックを記述することで、IE5用の値を読み込まないよう防いでいました。ですが、IE7beta2においては、このコメントハックも無効となった模様でして。つまり、IE7の場合、!importantもコメントハックも無きものとして扱い、結果的には、

width: 100px;
width: 150px;

こう書いたのと同じことになってしまうというわけです。

IE7では!important規則の実装不備は修正されるものと思い込んでいたのですが(もちろん正式公開時のバージョンでは修正されるかもしれないものの)、今後このハックを用いるのは控えたほうがよさげ。IE用のハックは例えばバージョン5用に留め、条件付コメントで振り分けるとかって対処を考えようと思います。

追記:「IE7の!important宣言の解釈は今後のリリースで修正」原文)によるとbeta2より後のバージョンでは、正しく!important規則を解釈するとかで、ひとまずほっとしておいて良いかもしれません。というか、修正してくれないと、僕が仕事で作ったサイトに関してもほとんど崩れますので、本当によろしくおねがいします。そもそもIE6まで対象にしたボックスモデルハックを使っている時点で、今思えば「危ないハック」ではあったのですが。

トラックバック

このエントリーのトラックバックURL
http://www.extype.com/mt/mt-tb.cgi/320

コメント




保存しますか?