html - 将背景悬停在最上面的 div 上?

标签 html css

看一下:

http://jsfiddle.net/PPsHd/

正如预期的那样,将鼠标悬停在中心 div 上会触发所有 div 的悬停事件。有没有办法只改变鼠标悬停下第一个div的背景?也就是说,将鼠标悬停在中心 div 上只会更改中心 div 的颜色?

编辑:这对于用户添加的任意数量的嵌套 div 来说是可能的,我可以在 javascript 中完成它,但更喜欢 CSS 解决方案。

我已经在使用:

(function(){
    var highlightedDiv;
    $(document.body).on('mouseover','div',function(e){
        if(highlightedDiv){
            highlightedDiv.style.backgroundColor='';
        }
        (highlightedDiv=this).style.backgroundColor = 'lightGray';
        e.stopPropagation();
    });
}
)()

最佳答案

你遇到了事件冒泡的问题 - 我不明白你如何能够仅在 CSS 中做到这一点 -

如果您乐意使用一点 jQuery - 您可以做到:

$("DIV").bind("hover",function(event){
    $(".Hover").removeClass("Hover");
    $(this).addClass("Hover");     
    event.stopPropagation();
 });

CSS:

div{
    padding-top:50px;
    margin:auto;
    border:1px solid lightGray;
    background:gray;
}
.Hover{
    background:lightGray;
}

诀窍是阻止事件冒泡到其他 div - 你 can see it in action .

关于html - 将背景悬停在最上面的 div 上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10712228/

相关文章:

javascript - 在 ngShow 上隐藏/显示动画

html - 带有可折叠侧导航和 Bootstrap 3 的幻影间距

javascript - 使用 OrgChart 增加节点宽度的最佳方法

javascript - 除非在那之后调用警报,否则 jquery show() 不起作用

html - 如何在悬停时使 flex 边框变红?

javascript - 声明 z-index 后无法单击按钮?

javascript - HTML5 Canvas : How do I merge 2 canvas into 1 (of which 1 is draggable)

javascript - 将某些 CSV 数据加载到 HTML 文本区域

css - 流体导航背景悬停

css - 固定元素因高度而未显示