CSS/memo/IE7での透明度コントロールと透過PNG

CSS/memo/IE7での透明度コントロールと透過PNG

バージョンと製造年月日

2009年02月27日

ありあわせ実装のIE7

PNG32 とかアルファチャンネル PNG とか言われる類のフルカラー+256階調の透明度コントロールができる画像フォーマットが IE7 でも使えるといって使っていたのだが、穴があった・・・

IE7 の透過 PNG に対するレンダリングエンジンは CSS の透明度レンダリング filter を適当に流用して実装しているようで、CSS 側で対象の透明度を100(IE7 の filter は透明度を 0〜100 の値でコントロールする。ちなみにモダンブラウザは0〜1でコントロールする)にするとその対象に含まれる画像や背景の透明度情報をファイル自体に持っているものまでも透けなくなってしまう。

検証

img として配置 透明度指定無し

これはいくらなんでも完璧に実装してる

img として配置 透明度指定50%

確かに透けているが何か変・・・本体が透けているが、アンチエリアスとかドロップシャドウの部分が完全に消えてなくなってしまっている。アルファ部分が全部無いならわからんでもないがなぜそこだけ無くなる?

背景として配置した場合も同じ結果になった。透明度をコントロールできるんだったら次はふわーっと出現するスクリプトを書きたいところだがIE7では現状何かトリッキーなことをしないとできないっぽい

・・・って眺めていたら、なんか変!なんかでかいwサイズが変わっている

参考サイト

http://slashdot.jp/developers/05/05/02/0226207.shtml

いろいろ調べてたらやっぱり思ったとおり。エンジンの刷新じゃなくていろいろゴテゴテやった結果のバグっぽい

css/memo/ie7_opacity_and_alpha_png.txt · 最終更新: 2020-06-02 15:55 by ore