html css hover事件,css – 防止在父Div上触发Div的Hover事件?

这篇博客探讨了在W3C事件模型中如何阻止事件从子元素冒泡到父元素。作者提到,唯一的方法是通过JavaScript来防止冒泡。提供了一个使用jQuery的示例代码来实现这一目标,并指出纯CSS目前无法实现此功能,尽管CSS4的未来选择器可能允许这样做。此外,还提供了一个JavaScript实现的示例和相应的CSS修改建议。
摘要由CSDN通过智能技术生成

根据定义,将鼠标悬停在孩子身上,也会悬停在父母身上. html事件中没有“阻塞”.

有两个方法链,泡沫和捕获.

Any event taking place in the W3C event model is first captured until

it reaches the target element and then bubbles up again.

你要阻止这种情况的唯一方法是通过向你的页面添加javascript来防止冒泡,以防止链.这在jQuery中很简单

$('.mensal').hover(function(e){

e.stopPropagation();

});

在我看来,这个答案在处理CSS时完全没有用. Javascript事件不处理CSS选择器或阻止它们.

不幸的是,仅使用CSS,我不知道如何实现这一点(即使在javascript中它也会变得棘手). CSS 4选择器将允许您指定选择器http://dev.w3.org/csswg/selectors4/#subject的主题,以便您可以执行类似的操作

#operaContent .opera:hover! .mensal:not(:hover) { /*your css*/ }

但这还没有实施,并且仍在制定草案.

编辑:

这是一个适合你的javascript(jQuery)实现

$(function(){

$('.opera').hover(function() {$(this).addClass('hoverIntent')},function(){ $(this).removeClass('hoverIntent'); }

);

$('.opera .mensal').hover(function() {

$(this).parent('.opera').removeClass('hoverIntent');

});

})​

和修改后的CSS

#operaContent {

padding: 0 50px 0 50px;

position: relative;

overflow: visible;

}

#operaContent .opera {

display: block;

border: 1px solid #FFFFFF;

border-bottom: 1px solid #DDDDDD;

padding: 5px;

margin-bottom: 10px;

height: 120px;

background-color: #0A8ECC;

}

#operaContent .opera.hoverIntent {

border: 1px solid #AAAAAA;

background-color: #DDDDDD;

cursor: pointer;

}

.mensal {

position: absolute;

top: 1px;

left: 8px;

z-index: 3;

display: block;

}​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值