IE11下zindex为负,事件无法穿透

在项目中发现IE11下a标签点击事件无法响应,而Chrome正常。问题源于IE11的一个bug,当z-index设置为负值时,会导致元素无法获取鼠标事件。通过情景模拟,发现在IE11中,z-index为负的DOM元素无法触发点击事件。解决方法是避免使用负z-index,或者调整z-index为正,从而恢复事件的正常响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在项目中遇到一个很奇怪的问题,一个a标签的点击事件在IE11中无法响应,在chrome中却可以响应。后来经过仔细的排查问题,发现是IE11下的z-index为负出现的bug,现做如下总结。

情景模拟

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{margin:0;padding:0;}
        .inner-1{
            position: absolute;
            height: 400px;            
            left:20px;
            top: 0;
            background-color: red;
            z-index: -1;
        }
        .inner-2{
            margin-top: 200px;
            height: 100px;
            background-color: green;
            overflow: hidden;
            position: relative;
            z-index: 2;
        }
    </style>
</head>
<body>  
       <div  class="inner-1">
            <button  onclick="alert(3)">测试</button>
        </div>
        <div class="inner-2"></div>  
</body>
</html>

界面效果如下

avatar

在chrome下,点击这个按钮,会弹出3,但是在IE11下,神奇的事情发生了,按钮根本不能点击,将鼠标放上去,没有按钮移入的默认样式,更不会触发点击事件了。给人感觉就像是这里没有按钮,事件无法穿透到这个按钮。

然后我猜测,这个应该是因为这个inner-1层的z-index为负值,致使其表现的就像有东西覆盖在其表面,使其无法获取鼠标移入的焦点。但是在IETester的测试结果中,IE8和IE9这个按钮点击时都有默认的效果,拥有明显的点击效果。因此,这就是一个IE11的专属bug。之后自己尝试将inner-1的z-index设置为1,再进行测试,结果豁然开朗!!!成功了,点击事件可以响应了。
avatar

所以,最后的总结就是:在IE11中,不要在z-index为负值的DOM元素中,期待点击事件或者其他鼠标相关事件的发生!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值