【发布时间】:2013-07-02 10:14:52
【问题描述】:
如何防止子 div :hover 事件被其父 :hover 事件覆盖?
这就是我创建div 元素的方式:
HTML
<script type="text/javascript">
var counterd = document.createElement("div");
counterd.id='counterdiv';
counterd.innerHTML = "(<?php echo $woocommerce->cart->cart_contents_count ?>)";
document.getElementById('menu-item-130').appendChild(counterd);
document.getElementById("counterdiv").setAttribute('onclick', 'location.href = "/varukorg"');
</script>
改变样式的CSS是:
#menu-item-130:hover #counterdiv, #menu-item-130.current_page_item #counterdiv {
color: black;
}
我还有一些 CSS 规则可以在 :hover 上设置 #menu-item-130 的样式。当鼠标移过#counterdiv 时会出现问题,它会将#counterdiv 文本更改为黑色。 我不希望 #counterdiv 元素在悬停时触发父级事件。 #menu-item 的悬停 CSS 如下:
#menu-item-130 a:hover, #menu-item-130.current_page_item a {
background: url(../images/cart-59-24black.png) gray 21px 18px no-repeat!important;
}
由于两个div 元素都具有position:relative; 属性,我已经尝试使用z-index,但它似乎不起作用。我知道让父母div 在悬停孩子时改变样式是不可能的。
编辑:大家好,我找到了一个像硬编码这样的解决方案,但它的工作原理;)因为计数器 div 在顶部,所以我将悬停时的 #counterdiv 设置为与 #menu-item-130 相同的大小并放置相同的背景风格,所以现在它的工作。无论如何感谢您的帮助..
【问题讨论】:
-
请添加小提琴并显示您的 html 代码
-
我认为这个问题很好。不需要每个人都包含他们工作的现场演示,尤其是对于 2 div 问题。