« デザイン変更 | メイン | ナビゲーション関連 »

透過PNG

MTに限った話ではないけれど。

透過PNGはいまさらほとんどのブラウザで表示されるけれど、IE6.5は透過せずに表示してしまう。なにかと便利なのに、IE6.5で表示できないとなると(ブラウザシェアを考えると)「使えない」コトになっちゃうワケで。IEで透過させようとすると[DirectXのAlphaImageLoader]を使う必要がある。Appleなんかは「Safariで表示されんだからイイじゃん」的なIE無視っぷりで透過しないまま表示させてしまったりしてますが、雑用係はそーも行かず...

<透過PNGをIE6.5でフツーに表示した時はこんなカンジ>
dive2_png_fails.jpg

<透過PNGをMozilla(Firefox)やSafariなんかで表示した時はこんなカンジ>
dive2_png.png


というワケで、IE6.5用にAlphaImageLoaderを適用させるビヘイビアがあるのでこちらを利用。
png2vml.htc
コレで日本のシェア9割のブラウザでもめでたく透過PNGが利用できるようになりました。

■ png2vmlで透過させるための条件 ■
1:スタイルシートのbodyに[behavior: url(http://自分のサイトURL/png2vml.htc);]を加える。

2:PNGイメージに[class="AlphaPng"]を加える。


ただし、画像にオリジナルへのリンクが貼ってあるときにマウスーバーでポインタが[ゆび]にならない弊害あり。スタイルシートで[cursor: pointer;]と指定してみたものの、ココのヘッダ画像にも透過PNGを指定してるため、リンクもせんのに[ゆび]になってしまいました。ので、imgタグに[style="CURSOR: hand"]を加えることでなんとか実現。

このエントリーの画像はリンクがないので、確認できるのは↓の画像。









comment