6

我有一个下拉菜单,我希望一些列表项在一行中。

演示

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

1 回答 1

4

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

>从内部移除#menu > li { 并设置<li><li style="width: 33%;">

不确定这是否style="width:33%;"是绝对必要的,因为它在没有它的 Firefox 20 中也可以工作,但只是为了安全起见。

更新

您要求的版本仅在第一个选项卡下执行多个列。干得好:

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

给第一个选项卡一个像这样的 id <ul id="tab1",然后将其添加到 CSS:

#tab1 li{
    display: block;
    position: relative;
    float: left;
    width: 33%;
}
于 2013-05-29T19:44:33.160 回答