【发布时间】:2014-04-09 15:45:23
【问题描述】:
好吧——我放弃了!我对 CSS 没有太多经验,但我正在尝试创建一个简单的 CSS 多级下拉菜单。我几乎让它工作,但无法弄清楚一件事......当我将鼠标悬停在顶级菜单上时,该项目的所有子级菜单(第 2 和第 3 级)显示。有人可以告诉我我做错了什么吗?我已经尝试了很多解决方案 - 这就是我所在的位置。非常感谢任何帮助:)
#ddmenu {
font-size: .9em;
display: block;
width: 100%;
height: 30px;
margin: 0 auto;
padding: 0 15px;
background: #fff;
border-radius: 2px;
border: 1px solid rgba(0, 0, 0, 0.15);
box-shadow: 0 1px 1px rgba(20, 20, 20, 0.2);
cursor: pointer;
outline: none;
font-weight: bold;
color: #8aa8bd;
z-index: 5000;
}
#ddmenu ul {
z-index: 1000;
position: absolute;
top: 25px;
width: 180px;
background: #fff;
display: none;
margin: 0;
padding: 7px 0;
list-style: none;
border-radius: 3px;
border: 1px solid rgba(0, 0, 0, 0.2);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
}
#ddmenu li {
font-size: 0.9em;
display: block;
position: relative;
float: left;
text-shadow: 1px 1px 0 #fff;
z-index: 5000;
line-height: 30px;
color: #6c87c0;
padding: 0 10px;
white-space: none;
}
#ddmenu li a {
display: block;
float: left;
font-weight: bold;
text-decoration: none;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
}
#ddmenu li:hover > a {
color: #7180a0;
background: #d9e2ee;
}
/* level 3+ list */
#ddmenu ul ul {
left: 180px;
top: -3px;
}
HTML 是:
<ul id="ddmenu">
<li><a href="javascript: void(0);">Home</a>
<ul>
<li><a href="javascript: void(0);">New</A></LI>
<li><a href="javascript: void(0);">Show All</A></LI>
</ul>
</LI>
<LI><a href="javascript: void(0);">Layers</a>
<ul>
<li><A HREF="javascript: void(0);">Trans 1</A>
<UL>
<li><A HREF="javascript: void(0);">sub one</A></LI>
<li><A HREF="javascript: void(0);">sub two</A></LI>
<li><A HREF="javascript: void(0);">sub three</A></LI>
</UL>
</li>
<li><A HREF="javascript: void(0);">Trans 2</A>
<UL>
<li><A HREF="javascript: void(0);">sub one</A></LI>
</UL>
</li>
</ul>
</LI>
</ul>
【问题讨论】:
-
嘿更改二级菜单的href ...更好的是使用eahc菜单级别的类,然后使用javascript侦听器而不是当前的href
-
缺少某些代码。您当前的 CSS 不会在悬停时显示任何子菜单,因为没有将子
ul元素更改为display: block而不是display: none。您要么缺少此菜单中涉及的一些 CSS 规则或 Javascript。但我怀疑您的问题可以通过使用>子选择器来解决(假设这实际上是一个纯 CSS 菜单)。在 JSfiddle 中复制您的代码和错误,它会更容易修复。