使用pointer-events禁用某个元素的:hover

刚才在改一个左侧导航,要求第一行是栏目名,下面的是子导航。子导航当然是有hover的,栏目名是写死的。
这里写图片描述
当然可以用jQuery来做辣,但是搜了搜发现css3有相应的属性pointer-events。

pointer-events语法:

  • pointer-events:auto | none | visiblepainted | visiblefill | visiblestroke | visible | painted | fill | stroke | all
  • 默认值: auto

pointer-events取值:
对于浏览器来说,只有auto和none两个值可用,其它的几个是针对SVG的(本身这个属性就来自于SVG)。

pointer-events作用(值为none时):

  • 阻止用户的点击动作产生任何效果
  • 阻止缺省鼠标指针的显示
  • 阻止CSS里的 hover 和 active 状态的变化触发事件
  • 阻止JavaScript点击动作触发的事件

回归题目,贴一下代码:

<nav class="menu col-lg-3" data-ride="menu" style="width: 300px">
    <ul id="treeMenu" class="tree tree-menu menu-back" data-ride="tree">
        <li class="col-title">
            <a href="www.baidu.com">政策法规</a>
        </li>
    </ul>
</nav>
.col-title {
    pointer-events: none;
}

此时这个“政策法规”的a标签不会有点击事件,也没有鼠标小手。
同时我在li上设置了hover:

.tree li:hover {
    background-color: #E0F0FF
}

“政策法规”上也是没有效果的。


    <div class="col-lg-3 box">
        <div class="box-list_title">练习</div>
        <div class="box-list_content">
            <div class="bottom">
                <a href="www.baidu.com">一个链接</a>
            </div>
            <div class="top"></div>
        </div>
    </div>
.bottom {
    background: #aaabb2;
    width: 100px;
    height: 100px;
}

.top {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    left: 0;
}

此时灰色的层覆盖在a标签上方,导致不能点击a标签
这里写图片描述
而在top上加上属性pointer-events:

.top {
    width: 100px;
    height: 100px;
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
}

这时鼠标将穿过灰色层指向它下面的元素

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值