列出下拉菜单中同一行的项目

时间:2013-05-29 19:37:51

标签: html css drop-down-menu

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

请参阅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;
}

1 个答案:

答案 0 :(得分:3)

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

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

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

<强>更新

您要求的版本只能在第一个标签下执行多个列。你走了:

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

给第一个标签添加如此<ul id="tab1"的ID,然后将其添加到CSS:

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