【发布时间】:2016-12-24 04:52:36
【问题描述】:
我有一个很长的li 元素列表,超过 30 个项目。当我在ul menu 下拉列表中显示它时,列表会垂直向下延伸,这需要向下滚动浏览器窗口才能查看每个列表元素。
我想做的是将列表中的每一行分组以在 ul 菜单中显示 3 个li 元素,而不是每行一个。
我所做的尝试是将菜单使用的样式 .sub-menu li 设置为 display: inline as suggested here 以内联显示 li 元素,但这对水平排序没有影响。
所以不要这样:
- 吉姆
- 简
- 杰克
- 琼斯
- 杰克逊
- 乔尼
会这样显示(列表中每三个 li 元素水平分组):
简 约翰 贾里德
吉姆 詹姆士 琼斯
问题:
如何在 n li 元素的水平分组中显示列表?
在我当前的设置中,我将这个 CSS 用于菜单:
nav li:hover .sub-menu {
z-index: 2;
opacity: 1;
min-width: 100px;
}
.sub-menu {
width: 100%;
padding: 0px 0px;
position: absolute;
top: 100%;
left: 0px;
z-index: -1;
opacity: 0;
overflow: hidden;
transition: opacity linear 0.15s;
box-shadow: 0px 2px 3px rgba(0,0,0,0.2);
background: #425563;
text-align: center;
display: inline-block;
}
.sub-menu li {
display: inline-block;
font-size: 15px;
float: left;
margin-top: 0px;
}
.sub-menu li a {
padding: 10px 5px;
display: block;
text-decoration: none;
text-align: left;
z-index: 3;
}
.sub-menu li a:hover, .sub-menu .current-item a {
background: #01a982;
-moz-box-shadow: 0 0 5px 0px #888;
-webkit-box-shadow: 0 0 5px 0px #888;
box-shadow: 0 0 5px 0px #888;
color: #000;
}
.sub-menu li a input {
display: inline-block;
}
这是使用子菜单css样式的ul列表:
<ul class="sub-menu" id="assetNameMenu">
@* li elements created in script *@
</ul>
【问题讨论】:
标签: css html html-lists display