blog

IE CSSバグシリーズ:リンク画像の透明部分がクリックできない

問題:リンクの背景に透明なPNG画像を使用し、フィルタ方式を使用することで、IEでのアルファ透過問題は解決しました。その結果、IE で何が起こりましたか?画像の透明部分がクリックできなくなりました。例...

Jun 27, 2025 · 4 min. read
シェア

影響を受けるバージョン

バグの影響:IE8、IE7、IE6

現れ

フィルター」メソッドでPNGの透明度を修正した後、リンクの背景イメージの透明部分がクリックできなくなりました。

チュートリアル時間

2009年 7月19日(日) 15:03:44

説明

問題:IEのアルファ透過の問題は、リンクの背景に透過PNGイメージを使い、フィルターメソッドを使うことで解決しました。IEはどうなりましたか?イメージの透明部分がクリックできなくなりました。例を見てみましょう。

デモ

このバグの性質上、例は別のページにあります。

HTMLコード

<div><a href="#">Lorem Ipsum</a></div> 

CSSコード

a { 
    display: block; 
    background: url(ring.png) no-repeat; 
    width: 100px; height: 100px; 
    text-indent: -999px; 
} 
<!--[if IE]> 
    <style type="text/css"> 
        a { 
            background: none; 
            cursor: pointer; 
            filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="ring.png",sizingMethod="scale"); 
        } 
    </style> 
<![endif]--> 

これは何でしょう?display:blockが適用されたリンクで、背景には黒い円のPNGイメージが設定されています。IE が再色付けする PNG の透明部分は IE-only フィルタ属性で固定されています。問題は、IE では円の透明部分がクリックできないことです。

治療

以下は、タイプアレンジによる上記バグの解決策です。

治療

決済日

2009-07.19 15:17:23

ブラウザのバージョンの解決

影響を受けるすべてのバージョン

説明

このバグは、リンクに背景を設定すれば直ります。例を見てみましょう。

このバグの自然な性質のため、例は別のページにあります。

HTMLコード

<div><a href="#">Lorem Ipsum</a></div> 

CSSコード

a { 
    display: block; 
    background: url(ring.png) no-repeat; 
    width: 100px; height: 100px; 
    text-indent: -999px; 
} 

条件付注意事項

<!--[if IE]> 
    <style type="text/css"> 
        a { 
            background: url(#); /* or point to a transparent gif. EDIT: see comments */ 
            cursor: pointer; 
            filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="ring.png",sizingMethod="scale"); 
        } 
    </style> 
<![endif]--> 
Read next

トイレのロゴにインスパイアされたかわいいアンドロイドロボット!

わずか数年で、GoogleはAndroidを一世風靡し、それに伴って小さな緑色のロボットロゴが登場しました。このロボットロゴはどのようにして生まれたのでしょうか?そのインスピレーションの源は?当時のロゴデザイナー、イリーナ・ブロックがニューヨーク・タイムズ紙のインタビューで語っています。\n\n

Jun 27, 2025 · 2 min read