下拉菜单中同一行的列表项



我有一个下拉菜单,我想把一些列表项放在一行。

看到演示

您会注意到在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;
}

示例:http://jsfiddle.net/w7a3N/5/

>#menu > li {中移除,将内部<li>设置为<li style="width: 33%;">

不确定style="width:33%;"是否绝对必要,因为它在Firefox 20中没有它,但只是为了安全。

您要求的版本只能在第一个选项卡下显示多个列。给你:

http://jsfiddle.net/w7a3N/6/

给First标签一个id,如<ul id="tab1",然后添加到CSS:

#tab1 li{
    display: block;
    position: relative;
    float: left;
    width: 33%;
}

最新更新