IE6で透過png画像を利用する方法:その一

ブラウザのバージョンも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画像を指定する。

このようにすればIEでも、その他のモダンブラウザでも、
だいたい同じように「demo.png」が表示されます。

この方法では、png画像それぞれのCSSで設定をする必要があるので、
透過画像を多用している場合にはちょっと面倒だし、
後々のメンテナンスで混乱する可能性もあります。

また、このCSSで指定している範囲内ではタグが使えなかったりするので、
あくまでも背景や、リンクのない部分で何箇所か使う程度に
抑えた方がよいと思われます。

出来るだけこの方法を使わなくても済むように
早くなって欲しいものです・・・。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください