有一个html列表作为带有CSS的下拉菜单。 li>像我的例子中的“产品”这样的元素。但是我想要的是悬停在< h3>比如我的例子中的“联系方式”。有可能吗?
这是html:
<h3>Contact</h3>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li>
<a href="#">Products ▾</a>
<ul>
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul>
CSS代码:
ul li ul {
display: none;
}
ul li:hover ul{
display: block; /* display the dropdown */
}
非常感谢你。
答案 0 :(得分:1)
简而言之 - 您应该在ul
h3
<h3>
Contact
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li>
<a href="#">Products ▾</a>
<ul>
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul>
</h3>
在你的CSS中:
ul li ul {
display: none;
}
ul li:hover ul{
display: block; /* display the dropdown */
}
h3 > ul {
display: none;
}
h3:hover > ul {
display: block;
}
答案 1 :(得分:1)
在悬停时,您只能控制悬停在其上的元素的CSS,或者您悬停在其上的元素中的元素的CSS(其中一个子元素)。
因此,当您将鼠标悬停在ul
上时,您无法进行h3
更改样式,因为它们1)不是同一个对象,2)没有父子关系(它们是兄弟姐妹)。 / p>
要将鼠标悬停在h3上时显示菜单,可以将它们都包含在另一个对象(div
)中,并将其用于悬停事件。要区分两个悬停,您可以为ul
添加类名。
See this JSfiddle或下面的代码:
<div class="container">
<h3>Contact</h3>
<ul class="menu">
<li><a href="#">Home</a></li>
<li><a href="#">About</a></li>
<li>
<a href="#">Products ▾</a>
<ul class="submenu">
<li><a href="#">Laptops</a></li>
<li><a href="#">Monitors</a></li>
<li><a href="#">Printers</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul>
</div>
.container ul{
display: none;
}
.container:hover ul.menu{
display: block;
}
ul li ul.submenu {
display: none;
}
ul li:hover ul{
display: block; /* display the dropdown */
}