考虑下面这个简单的菜单标记(自动生成的,我没有在它的控制程度):CSS溢出隐藏和绝对位置
.menu {
width: 500px;
height: 20px;
list-style: none;
padding: 0;
margin: 0;
/* overflow: hidden ... problem */
}
li {
float: left;
position: relative;
margin-right: 30px;
}
ul li .submenu {
position: absolute;
left: 0;
display: none;
padding: 0;
margin: 0;
list-style: none;
width: 100px;
}
ul li:hover .submenu {
display: block;
}
<ul class="menu">
<li>Lorem ipsum</li>
<li>Submenu
<ul class="submenu">
<li>Sub item 1</li>
<li>Sub item 2</li>
</ul>
</li>
<li>consectetur</li>
<li>adipiscing elit</li>
<li>Aliquam elit nisi</li>
<li>pharetra quis</li>
<li>nulla eget</li>
</ul>
在上面的代码,菜单有一个固定的宽度,但它有更多的项目可以适应该宽度,所以剩下的项目将在第二行。我只想显示可以放在第一行的项目,并且想要隐藏其余的项目。
为此,我想指定菜单的高度。我使用这个CSS的菜单:
.menu {
width: 500px;
height: 20px;
overflow: hidden; /* problem */
}
问题是,上面的CSS隐藏.submenu
项目了。请参阅演示以了解问题。
演示:http://jsfiddle.net/Lgyg2a4r/
为什么不将样式应用到子菜单中,使其看起来更像是一个下拉菜单。背景,边框,阴影 – Andrew
用户将如何获得第二行显示的项目? –
您是否有办法将课程添加到第二行的所有项目中? – MCMXCII