CSS嵌套列表菜单悬停问题
好吧,我的问题是,我的嵌套子类别应该隐藏,直到我将鼠标悬停在父类别上,但是当我将鼠标悬停在主父类别上时,所有子类别和子子类别都会显示。
如何解决此问题,以便仅显示父子类别,而不显示子类别子子类别,直到我将鼠标悬停在它们上?
这是CSS。
#nav-container ul.cat-container ol ol ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol li {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container ol ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container li.cat-header:hover ol li {
visibility: visible;
height: auto;
display: block;
}
这是 HTML。
<div id="nav-container">
<ol>
<li>
<ul class="cat-container">
<li class="cat-header">
<h2><a href="#"class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
<li class="cat-header">
<h2><a href="#" class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
<li class="cat-header">
<h2><a href="#" class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a>
<ol>
<li><a href="#">Third Nested List</a></li>
<li><a href="#">Third Nested List</a>
<ol>
<li><a href="#">Fourth Nested List</a></li>
<li><a href="#">Fourth Nested List</a></li>
</ol>
</li>
<li><a href="#">Third Nested List</a>
<ol>
<li><a href="#">Fourth Nested List</a>
<ol>
<li><a href="#">Fifth Nested List</a></li>
<li><a href="#">Fifth Nested List</a></li>
</ol>
</li>
<li><a href="#">Fourth Nested List</a></li>
</ol>
</li>
<li><a href="#">Third Nested List</a></li>
</ol>
</li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
</ul>
</li>
</ol>
</div>
Okay my problem is that my nested sub categories should be hidden until I hover over the parent category but when I hover over the main parent category all the sub categories and sub sub categories are displayed.
How can I fix this problem so that only the parents sub categories are displayed and not the sub categories sub sub categories until I hover over them?
Here is the CSS.
#nav-container ul.cat-container ol ol ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol li a {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol li {
visibility: hidden;
height: 0;
display: none;
}
#nav-container ul.cat-container ol ol ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container ol ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container ol li:hover ol li a {
visibility: visible;
height: auto;
display: block;
}
#nav-container ul.cat-container li.cat-header:hover ol li {
visibility: visible;
height: auto;
display: block;
}
Here is the HTML.
<div id="nav-container">
<ol>
<li>
<ul class="cat-container">
<li class="cat-header">
<h2><a href="#"class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
<li class="cat-header">
<h2><a href="#" class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
<li class="cat-header">
<h2><a href="#" class="header">First Nested List</a></h2>
<ol>
<li><a href="#">Second Nested List</a></li>
<li><a href="#">Second Nested List</a>
<ol>
<li><a href="#">Third Nested List</a></li>
<li><a href="#">Third Nested List</a>
<ol>
<li><a href="#">Fourth Nested List</a></li>
<li><a href="#">Fourth Nested List</a></li>
</ol>
</li>
<li><a href="#">Third Nested List</a>
<ol>
<li><a href="#">Fourth Nested List</a>
<ol>
<li><a href="#">Fifth Nested List</a></li>
<li><a href="#">Fifth Nested List</a></li>
</ol>
</li>
<li><a href="#">Fourth Nested List</a></li>
</ol>
</li>
<li><a href="#">Third Nested List</a></li>
</ol>
</li>
<li><a href="#">Second Nested List</a></li>
</ol>
</li>
</ul>
</li>
</ol>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
好吧..假设该解决方案不涉及 IE6 支持并且仅涉及仅在悬停时显示直接子级的问题,那么是的,我可以有一个解决方案:
插入
>
如 cssfiddle: http://jsfiddle.net/3sYCG/
Well.. assuming the solution doesn't involve IE6- support AND only involves the problem of displaying only the direct children on hover, then yes, I may have a solution:
Insert
>
as shown in your cssfiddle: http://jsfiddle.net/3sYCG/
这就是你在 CSS 中想要的:
我相信你不需要那么混乱的长选择器之类的。上面的代码片段应该很好地涵盖了您的用例。
子选择器 (>) 在除 IE6 及更低版本之外的任何地方都有效。我希望您现在不再支持这些浏览器。
Here is what you want in CSS:
I believe you don't need al that mess with long selectors and such. The above snippet should cover your usecase pretty well.
Child selector (>) does work everywhere except IE6 and below. I hope you don't support those browsers these days.