我在我的网站上实现了Lavalamp标签菜单:当鼠标进入绝对Div"#lavalamp"底部"潜艇" div不显示。如何解决这个问题,请帮助我。
<ul id="nav">
<li><a class="hsubs" href="#">Magento</a>
<div class="subs colbg01">
Submenu 1
</div>
</li>
<li><a class="hsubs" href="#">Wordpress</a>
<div class="subs colbg02">
Submenu 2
</div>
</li>
<li><a class="hsubs" href="#">Mobile App</a>
<div class="subs colbg03">
Submenu 3
</div>
</li>
<div id="lavalamp"></div>
答案 0 :(得分:2)
当您将鼠标悬停在三角形上时会出现问题,这会导致下划线li
丢失自己的悬停,从而使有效的li:nth-child(..) ~ #lavalamp
规则无效。
您可以通过禁用lavalamp元素
上的指针事件来解决现代浏览器的这个问题#lavalamp{pointer-events:none;}
演示http://jsfiddle.net/gaby/6Lmgkhxd/4/
通知 :IE在v11上添加了对pointer-events
的支持
答案 1 :(得分:1)
这不起作用的原因是因为当悬停在#lavalamp
元素(稍后出现在DOM中)时,li的悬停状态被破坏。
如果你真的想要一个CSS修复,你可以使用z-index
将三角形放在其他所有东西之后,让li向前推进。
像:
#nav li {
float: left;
display: block;
padding: 16px 20px 18px 20px;
z-index: 1; // <--- added this
}
#lavalamp {
z-index: -1; // add this
... other code
}
示例:http://jsfiddle.net/6Lmgkhxd/3/
我将li的背景颜色更改为透明,以使其正常工作。
此外,li和.subs
之间似乎存在微小的差距所以我增加了li的底部填充以更好地重叠到位于.subs
的50px顶部(来自16px
到18px
)