ie6,ie7下a标签无法点击(转载)

前几天在做一个网站的引导页面,因为都是用图片,所以按钮需要用空a标签来做,发现a标签在IE6与IE7中点击无效中点击不了,其他浏览器都正常。一开始以为是z-index的问题,但不论z-index设置多大依然还是无效。代码大致如下:

<a style="position:absolute; top:0; left:0; display:block; width:100px; height:50px;" href="#"></a> 

给a标签添加文字后,发现只有鼠标放到文字上会成手型(说明能点击),而放到文字外面却不是手型,无论a标签的宽高有多大都不行。于是随意给a标签添加了一个background意外的发现鼠标在非文字区域(但在a标签里面)也能成手型,然后尝试将文字去掉依然可以成手型,于是也就找到了问题之所在了。

最后得出了结论:

如果给空a标签定义了宽度和高度且使用了absolute,则在IE6和IE7中点击无效。

也找到了两种解决方法(主要是针对a标签不能设置背景情况):

1、给a标签添加样式:background:url(about:blank);

2、给a标签随便添加背景色或者背景图片,然后将a标签的透明度设置为0,不过在IE中需要使用滤镜,即 opacity:0;filter:alpha(opacity=0);

扩展:

  在做一个hover下的半透明遮罩层时候遇到的,结构大致如下:

<ul class="clearfix_after">
            <li class="hover">
              <div class="hover_box">
                 <p>文字文字文字文字文字</p>
              </div>
              <a class="pic" href="" title="">
                 <img src="img/pic_17.jpg" width="149" height="192"  />
              </a>
           </li>
</ul>

li{
    width:149px;
    height:192px;
    position:relative;
    float:left;
    margin-right:7px;
}
.hover_box{
    display:none;
    position:absolute;
    z-index:2;
    width:149px;
    height:192px;
    top:0;
    left:0;
    filter:progid:DXImageTransform.Microsoft.gradient(enabled=‘true‘,startColorstr=‘#99000000‘, endColorstr=‘#99000000‘);
    background:rgba(0,0,0,0.6);
    color:#FFF;
    /*background-image:url(about:blank);*/
}
.hover .hover_box{display:block;}
.pic{display:block;position:relative;z-index:1;}
.pic img{display:block;}

在IE6下 hover_box的确是半透明了 但是在hover_box上却可以点击到下一层的a标签(hover_box下的内容则可以挡住,不会点到a标签)

原文地址:https://www.cnblogs.com/xiaozhumaopao/p/8782395.html

时间: 2024-11-11 17:46:58

ie6,ie7下a标签无法点击(转载)的相关文章

空a标签 a标签空的情况下 IE6 IE7下点击无效

最近做了好多网站专题页面,因为专题页面图片较多,个别banner上有1个到多个按钮,一种是用"图解img标签的usemap"的方法做链接,(图解img标签的usemap使用方法)[传送门] 另一种用则需要用空a标签来做,发现"a标签"在IE6与IE7中点击无效中点击不了("a标签"定义宽度和高度IE浏览器为零0),其他浏览器都正常(如果不正常请加"display:bolck;"(←推荐)或"float:left;&q

IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题

(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在父标签中加入overflow:hidden:或zoom:100%示例代码: 不正常显示 ul{} li{ list-style:none; float:left; margin:10px;} 1. 你会发现左边10px 变成20px了, 解决办法:在li的CSS中加入:display:inline

IE6/IE7下:inline-block解决方案

IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: 对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行,允许空格.(准确地说,应用此特性的元素现为内联对象,周围元素保持在同一行,但可以设置宽度和高度等块元素的属性) IE中对内联元素使用displ

块级元素IE6/IE7下inline-block解决方案

转:块级元素IE6/IE7下:inline-block解决方案 IE6/IE7下对display:inline-block的支持性不好. 1.inline元素的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的: 对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行,允许空格.(准确地说,应用此特性的元素现为内联对象,周围元素保持在同一行,但可

IE6/IE7下:inline-block解决方案(转)

原文地址:http://blog.sina.com.cn/s/blog_60b35e8301019hk2.html 1.inline元素(比如span,em等)的display属性设置为inline-block时,所有的浏览器都支持: 2.block元素的display属性设置为inline-block时,IE6/IE7浏览器是不支持的:直接贴代码:<div class="list">  <span>无标题文档无标题文档</span>  <sp

JavaScript在IE6,IE7下报错&#39;expected identifier, string or number&#39;

问题: 代码在Forefox和IE8下工作正常,但是在IE6下报错: expected identifier, string or number 假如变量options有多个选项,那么我们可以用逗号分开:但是最后一个选项后不可以有逗号.虽然IE8和Firefox可以忽略这个逗号,但是IE6下会报错(据说IE7下也会报错) 解决方案: 解决方法很简单,把多余的逗号删除就可以了. var options = { target: '.content' //注重不可以加逗号 }; JavaScript在

inline-block和text-indent在IE6,IE7下同时使用的兼容问题解决方法

在实际应用中,考虑到seo,很多button,icon都要用到inline-block和text-indent来处理,例如: <a href="#">Button</a> 当我们把css写成这样 .btn{display:inline-block; width:100px; height:23px; text-indent:-9999px;background-image:url(img.jpg);} 在标准浏览器下是没问题的,但是在IE6和7下会触发A标签消失

IE6/IE7下绝对定位position:absolute和margin的冲突问题解决

首先我们来看一个代码: 复制代码代码如下:<div id="layer1″ style="margin:20px; border:1px solid #F88; width:400px; "> <div id="layer2″ style="position:absolute; background-color:#ccc;">Absolute (layer2)</div> <div id="la

IE6/IE7下position:absolute;绝对定位偏移、不显示问题

其实这个原因是因为IE6/IE7的解析是在position:absolute之后,仍然会按照普通文档流的解析来进行,而要打破这种方式,让它正常工作就需要给它一个定位,具体代码如下:方法一: CSS: html代码: 切记left:0px;必须两个都要写,少写一个都会造成不显示:  方法二: