带垂直的水平下拉菜单

Horizontal dropdown menu with vertical

我正在尝试修改模板导航栏以在 how-to 悬停,但我似乎无法让 sub 2 下降到 sub 1 以下。

我还注意到,将其置于移动尺寸并悬停时会出现问题。 (但那是因为我还没有担心媒体屏幕)。

有什么想法吗?

See the fiddle for the full code.

HTML

<!-- Navigation options -->
<nav class="clearfix">
    <ul class="clearfix">

        <li><a href="#">Home</a></li>
        <li><a href="#">How-to</a>
<ul id="submenu">
<li><a href="#">sub1</a>
<li><a href="#">sub2</a>
</ul> <!--end sub ul-->
        </li>
        <li><a href="#">Icons</a></li>
        <li><a href="#">Design</a></li>
        <li><a href="#">Web 2.0</a></li>
        <li><a href="#">Tools</a></li>  
    </ul> <!-- end ul clearfix -->
    <a href="#" id="pull">Menu</a>
</nav> <!-- end nav clearfix -->

CSS

.clearfix li:hover ul {
display: block;
}

.clearfix li ul {
display: none;
position: absolute;
top:100%;
background: #455868;
width: auto;
height: auto;
vertical-align: top;
}

.clearfix li ul li {
width: auto;
}

.clearfix li ul a {
display: block;
}

完整代码见Fiddle: https://jsfiddle.net/m7tnf8ao/

您的子菜单 li 元素正在从 nav li 规则中选择浮动。

在 jsfiddle 的第 38 行添加:

.clearfix li ul li {
  width: auto;
  float:none; /* <- this one here */
}

要使 sub2 显示在 sub1 下,请关闭子菜单的 float16=]:

#submenu li {
  float: none;
}

第二个问题解决了:

@media screen and (max-width: 600px) {
  #submenu {
    position: static;
  }
}