我正在尝试创建带有标记的导航菜单,如下所示:
<ul id="ul1">
<li><a href="#">Link 1</a>
**<div>**
<p>SOME STUFF</p>
<ul>
<li><a href="#">Link 1.1</a><**div** class="innerdiv"></div></li>
<li><a href="#">Link 1.2</a><**div** class="innerdiv"></div></li>
<li><a href="#">Link 1.3</a><**div** class="innerdiv"></div></li>
<li><a href="#">Link 1.4</a><**div** class="innerdiv"></div></li>
</ul>
</div>
</li>
.
.(WITH MORE <LI>'S OFC :))
.
</ul>
现在,当我将鼠标悬停在链接1上时,我想使外部div可见...这很容易使用CSS完成:
#navbar ul li div
{
min-width:500px;
min-height:130px;
background-color:#dfdfdf;
position:absolute;
left:0px;
top:32px;
visibility:hidden;
}
#navbar ul li:hover div
{
visibility:visible;
}
接下来,我希望仅当将鼠标悬停在链接1.1、1.2之类的内部链接上时,该内部div才可见。
这引起了一些问题,原因是我使用#(id)-selector以#navbar作为基本ID,这导致内部div继承了来自外部div的css ...当我在外部链接上悬停时要说的我不想的内在变化的行为...如果您理解我的意思..
我想在悬停在外部链接(链接1,2,3)上时应该显示外部div,而在悬停在内部链接(链接1.1、1.2、1.3)上时要显示内部div
导航菜单
天哪,这令人困惑...
告诉我如何特别选择内部div或使用JS或Jquery来解决此问题,请在这方面提供帮助。...当前我正在使用选择器
#navbar ul li div ul li div , and
#navbar ul li div ul li a:hover div
最佳答案
如果您的div最初没有显示:
#navbar div {
display: none;
}
您可以在容器
LI
悬停时使它们可见:#navbar li:hover > div {
display: block;
}
>
运算符用于选择直接后代,因此在这里,仅是当前正在悬停的div
的直接子节点的li
元素。有关更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/Child_selectors