« Sound Blaster Digital Music LX | メイン | 新撰組続編きたぁ »

IE6で標準準拠モードにするとCSSのFilterが動かない

IE6で標準準拠モードにすると「いままで通りの方法」でCSSのFilterが動かない。
個人的にはどうでもいいんだけど、ぱどタウンでは重要なのでメモ。

IE6の標準準拠モードがOnになっていない場合は、

<font style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

とすることで、DropShadowがかかる。ところが、DOCTYPEスイッチによって標準準拠モードにすると上ではフィルターは動かない。inline要素に対してwidthを設定することはできないからだろうと思って、

<div style="width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</div>

<font style="display:block;width:100%;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

を試すと両方動いた。ただし、width:100%;を消すとだめ。displayとwidthを両方設定するのは面倒だなといろいろ調べて、msdnのドキュメントにたどり着いた。

インライン 要素の width および height
SPAN、B、および I などのインライン 要素は、width や height プロパティをサポートしません。標準準拠モードを有効にして、インライン 要素の width や height プロパティを設定するには、インライン 要素の display プロパティを inline-block に設定します。

なぜ、inline-blockなのか謎だったが、

<font style="display:inline-block;filter:DropShadow(color=#FF00FF,offX=1,offY=0);">ドロップシャドウをかけたいテキスト</font>

としてみると見事フィルターうごいた。

Blog.NomadsCafe.Jp