关于在IE中a标签设置绝对定位和宽高之后却点击没有反应的解决方案

最近做了一个页面,是一张大的背景图,在背景图上面有几个表单元素,代码结构大致如下:

 

  <div class="huishi" id="form1" style="background:url(images/huishi_bg.png) no-repeat;">
    <input type="text" value="" name="year"  id="year"/>
    <input type="text" value="" name="month"  id="month"/>
    <input type="text" value="" name="day"  id="day"/>
  </div>

DIV使用相对定位,表单元素使用绝对定位。
后来产品希望背景图能点击,于是在在背景图上面加了一个超链接a,代码如下:

 

 

  <div class="huishi" id="form1" style="background:url(images/huishi_bg.png) no-repeat;">
  <a href="http://www.baidu.com/" target="_blank" style="display:block; width:555px; height:395px; position:absolute; left:0; top:0; z-index:0;"></a>
    <input type="text" value="" name="year"  id="year"/>
    <input type="text" value="" name="month"  id="month"/>
    <input type="text" value="" name="day"  id="day"/>
  </div>


后来测试发现在IE下面点击无响应。其它浏览器没事。

 

在试验了无数种方式之后,还是不行,最后求助于百度,于是找到了答案。

以下是从网上摘录下来的部分,为了防止以后再遇到此类问题,也为了怕自己忘记,特此记录一下。

 

造成问题的原因如下:

元素绝对定位以后设置了高宽等原因:

1、元素内并无内容
2、背景是透明的,无任何背景图或者颜色

解决方法:


1、如果不是绝对定位元素的,可以用相对定位
2、给元素加透明的背景图,或者给元素加背景颜色,然后设置透明度为0
3、IE可以只用 background:url(about:blank) 解决


第三种方法平时用用是可以的,但是在某种情况下会有bug, 比如JS拖动层时候,拖动的
事件在一个透明层上面,你有设置了其他鼠标光标,这时候拖动就会出现光标闪烁的现象!

这里建议第二种方法,弄一个1*1PX的透明图就好!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浴火_凤凰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值