IE无法识别点击区域

今天遇到一个很奇怪的问题,在使用a标签模拟图片热点时用到绝对定位,在火狐、谷歌其它浏览器下没有问题,但ie却无法点击a连接。

经过搜索,才知道在 IE6,7 下,绝对定位的链接,如果它没有设置背景,并且它在其它元素上方时,则最终的显示结果似乎被它下方的元素遮住了,不响应鼠标悬停和点击。如果给这个链接加边框,则只有边框部分响应。如果给它加背景色或背景图片,则整个链接都可以响应。

##所以常用解决方法1(推荐方法)

给它一个背景图片(最好是页面中已经有的图片,不需要另外下载了),然后用背景定位将背景移出元素的范围,就是看不到任何背景,同时解决了 IE下 的这个 bug。

1
2
3
a {
background: url(../images/c.jpg) no-repeat -9999px 0;
}

##解决方法2:

给它加背景色,然后使用滤镜把透明度设为0

1
2
3
4
5
6
a {
background:#fff; /* 背景色是必须的,且不能为透明 */
filter:alpha(opacity=0);
-moz-opacity:0;
opacity: 0;
}

第二种方法使用到滤镜,不推荐使用,如果这个a标签中还有其它标签的话,将会把包含的其它元素也设为透明。