我正在创建一个与水平子菜单垂直的导航菜单。绝对定位固定宽度的Css水平菜单div
的HTML:
<div id="sidenav">
<ul class="menu">
<li class="option">
<span class="label">Home</span>
</li>
<li class="option">
<span class="label">About</span>
</li>
<li class="option">
<span class="label">More...</span>
<div class="submenu">
<ul class="menu">
<li class="option">
<span class="label">First</span>
</li>
<li class="option">
<span class="label">Second</span>
</li>
<li class="option">
<span class="label">Thrid</span>
</li>
</ul>
</div>
</li>
</ul>
</div>
的CSS:
#sidenav {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 100px;
color: #fff;
background-color: #000;
}
.menu {
list-style-type: none;
padding: 0;
margin: 0;
}
.option {
width: 100px;
height: 50px;
text-align: center;
}
#sidenav > .menu > .option {
position: relative;
}
#sidenav > .menu > .option > .submenu {
position: absolute;
top: 0;
left: 100px;
color: #fff;
background-color: #ddd;
}
#sidenav > .menu > .option > .submenu > .menu > .option {
float: left;
}
两个菜单绝对定位的子菜单需要是上级菜单选项的右侧。
我在子菜单的每个菜单选项中添加了一个浮动,但它们保持垂直,不会水平。我如何让子菜单变成水平的?
你可以看到在这个小提琴结果:
是否这样? http://jsfiddle.net/9yMxt/ –
@JoshCrozier是的但在你的例子中,你指定了子菜单的宽度。我无法指定每个子菜单的宽度,因为它们可能都有不同数量的项目... –
这是我能想到的唯一选择 - http://jsfiddle.net/5MXtb/ - 无需宽度。 –