最近知ったんだけど、 PNG 画像の Transparent 部分って IE6 ではきちんと透明に表示されないらしい。
これをどうにか FF とか他のブラウザでも表示されるようにしながら対応する方法。
基本的なやり方は CSS で background と filter を使って、以下のようにすれば表示はされるようだ。
background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/hello.png',sizingMethod=scale); width: 160px; height: 120px;
でもこれだけじゃ当然 FireFox では表示されない。じゃーどうするか。
ここで紹介する方法は IE では上記の CSS が反映され、 FF では img タグで画像を表示する方法。
まず HTML の部分を見てみると
<span id="hello"><img src = "images/hello.png" /></span>
という感じ。
考え方としては hello の背景に先ほどの CSS を適用し、 IE だったら img の display を none にする。
span#hello { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/hello.png',sizingMethod=scale); width: 160px; height: 120px; } span#hello img { display: expression("none"); }
こうやって IE でしか動かない expression を使ってやるとうまくいく。
にしてもめんどくさい。