ブラウザのバージョンもIEに関しては7が主流、IE8のベータ版も
出ているというのに・・・世の中まだまだIE6でインターネットを
利用している人が多いのも事実です。
コチラのブログにアクセスしている訪問者の利用ブラウザも
当初想像していたよりIE6の利用者が多いです。
(そういっている私も仕事での確認用に、IE6も使ってますし。。。)
というわけで、いつも話題になる『IE6でのpng画像の扱いについて』です。
ここのブログではJavascriptを利用していますが、
jsはユーザーによっては使用しない設定にしていることもあるので
こちらの思ったように表示されていないかも?しれません。
今回は、一番オーソドックス(?)定番の方法をメモしておきます。
(ちょっと別件でテスト使用しています)
IE独自の拡張、「AlphaImageLoader Filter」という指定を利用します。
もともとは、「要素」と「要素の背景」の間に画像を配置する指定だそうで、
Direct Xで実現してます。
画像にアルファチャンネル(透過度情報を保存するデータ領域)が
設定してある場合、これを有効にします。
#demo1 { background: transparent url(./demo.png); no-repeat left top !important; background: none; filter:progid:DXImageTransform.Microsoft .AlphaImageLoader(src="./demo.png",sizingMethod="scale"); }
例えば、
という設定で。
まず普通にPNG画像(demo.png)を背景画像として指定。
次にIEで解除。(background:none;)
そしてIE用にPNG画像を指定する。
まず普通にPNG画像(demo.png)を背景画像として指定。
次にIEで解除。(background:none;)
そしてIE用にPNG画像を指定する。
このようにすればIEでも、その他のモダンブラウザでも、
だいたい同じように「demo.png」が表示されます。
この方法では、png画像それぞれのCSSで設定をする必要があるので、
透過画像を多用している場合にはちょっと面倒だし、
後々のメンテナンスで混乱する可能性もあります。
また、このCSSで指定している範囲内ではタグが使えなかったりするので、
あくまでも背景や、リンクのない部分で何箇所か使う程度に
抑えた方がよいと思われます。
出来るだけこの方法を使わなくても済むように
早くなって欲しいものです・・・。