我有一个下拉菜单,我希望其中一些列表项在一行中。
请参阅demo
您会注意到Tab One
下有9行。我希望每行有三行,每行有三个项目。如何在CSS中完成?
HTML:
<div id="wrapper">
<ul id="menu">
<li><a href="#">Tab One</a>
<ul style="width: 300%;">
<li><a href="#">Column one</a></li>
<li><a href="#">Column one</a></li>
<li><a href="#">Column one</a></li>
<li><a href="#">Column two</a></li>
<li><a href="#">Column two</a></li>
<li><a href="#">Column two</a></li>
<li><a href="#">Column three</a></li>
<li><a href="#">Column three</a></li>
<li><a href="#">Column three</a></li>
</ul>
</li>
<li><a href="#">Tab Two</a>
<ul style="position: relative; left: -100%; width: 300%">
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 2</a></li>
</ul>
</li>
<li><a href="#">Tab Three</a>
<ul style="position: relative; left: -200%; width: 300%">
<li><a href="#">Tab 3</a></li>
<li><a href="#">Tab 3</a></li>
<li><a href="#">Tab 3</a></li>
</ul>
</li>
</ul>
</div>
CSS:
body {
font-family: arial;
margin: 0px;
padding-left: 40px;
padding-right: 40px;
}
#wrapper {
text-align: center;
height: auto;
margin: auto;
min-width: 500px;
}
#wrap {
display: inline;
}
ul {
font-family: Arial, Verdana;
font-size: 14px;
margin: 0;
padding: 0;
list-style: none;
}
#menu > li {
display: block;
position: relative;
float: left;
width: 33.3%;
}
li ul {
display: none;
}
ul li a {
display: block;
text-decoration: none;
color: #ffffff;
border-top: 1px solid #ffffff;
padding: 5px 15px 5px 15px;
background: #1e7c9a;
margin-left: 1px;
white-space: nowrap;
}
ul li a:hover {
background: #3b3b3b;
}
li:hover ul {
display: block;
position: absolute;
}
li:hover li {
float: none;
font-size: 14px;
}
li:hover a {
background: #3b3b3b;
}
li:hover li a:hover {
background-color: black;
opacity: .7;
}
答案 0 :(得分:3)
工作示例:http://jsfiddle.net/w7a3N/5/
从>
移除#menu > li {
并将内部<li>
设置为<li style="width: 33%;">
不确定style="width:33%;"
是否绝对必要,因为它在Firefox 20中没有它,但只是为了安全。
<强>更新强>
您要求的版本只能在第一个标签下执行多个列。你走了:
给第一个标签添加如此<ul id="tab1"
的ID,然后将其添加到CSS:
#tab1 li{
display: block;
position: relative;
float: left;
width: 33%;
}