h3 和列表下拉菜单 CSS3
h3 and list dropdown menu CSS3
当您将鼠标悬停在
元素(如我的示例中的 "Products")时,html 得到一个用作下拉菜单的 CSS 列表。但是我想要的是在我的示例中将鼠标悬停在 < h3 > 上时的相同效果,例如 "Contact" 。可能吗?
这是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 */
}
非常感谢您。
简而言之 - 您应该将 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;
}
悬停时,您只能控制悬停元素的 CSS,或悬停元素(其子元素之一)内元素的 CSS。
因此,当您将鼠标悬停在 h3
上时,您无法使 ul
更改样式,因为它们 1) 不是同一个对象,并且 2) 没有父子关系(它们是兄弟姐妹)。
要在悬停在 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 */
}
当您将鼠标悬停在
这是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 */
}
非常感谢您。
简而言之 - 您应该将 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;
}
悬停时,您只能控制悬停元素的 CSS,或悬停元素(其子元素之一)内元素的 CSS。
因此,当您将鼠标悬停在 h3
上时,您无法使 ul
更改样式,因为它们 1) 不是同一个对象,并且 2) 没有父子关系(它们是兄弟姐妹)。
要在悬停在 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 */
}