IE6で透過PNG画像を使用する

090722

またまた伊藤商店で使用したcssのチップス。
今日は透過PNGの処理。

結構面倒だと思っていたため、今まで避けておりましたが
ちょっとかっちょいいことしたいと思うと避けて通れないため
この機会に学習してみることにした。

safari、firefox、ie7以上では透過PNGはそのまま
利用できるが、IE6はそのままでは使用できない。

今回は背景にPNGを指定してIE6以外のブラウザはそのまま表示させ、
IE6はフィルターを通して画像を表示させるという技。

説明は、cssのみで。

IE6以外のブラウザ

[css]
#header h1 a {
height:30px;
width:130px;
background-image:url(images/logo.png);
background-position:left top;
background-repeat:no-repeat;
text-indent:-9999px;
float:left;
margin:0 30px 0 0;
}
[/css]

IE6のみ読み込み

[css]
/* IE6のみ */
background:none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’/path/images/logo.png’, sizingMethod=scale);
/*ファイルはフルパスでした方がいいかも*/
text-indent:inherit;
cursor:hand;
[/css]

ついでに、IE6だけ読み込ませる際のHTMLの処理

HTML内でハックを使わずブラウザの分岐方法

[html]
<!–[if lt IE 7]>
<link rel="stylesheet" href="css/ie6.css" type="text/css" media="screen">
<![endif]–>
[/html]
※IE7未満のブラウザを対象(7含まず)。

ファイルのパスはフルパスで指定しないと表示できなかった。
wordpressのテーマで使用したからかもしれんけど。

また、aタグに書いているのだが、カーソルがそのままだったので、
handを指定した。

具体的に知りたい方は、webdesigningの7月号を参照してちょ。