带有多行列表项的水平列表(ul)?

时间:2012-06-24 16:21:46

标签: html css html-lists

我有一个水平列表(对于导航栏),我想要一个单独的列表项是多线的。我尝试使用<br />,但这导致整个列表跳过一行

这是我得到的html:

<ul class="nav_list">
        <li><a href="#">Home<a></li>
        <li><a href="#">Bar/Bat Mitzvah<br />Tutoring<a></li>
        <li><a href="#">Early <br />Childhood<a></li>
        <li><a href="#">Home<a></li>
        <li><a href="#">Home<a></li>

</ul>

和css:

.nav_list {
    float:right;
    height:30px;
    margin-top:55px;
    width:510px;
}

.nav_list li {
    display:inline;
    list-style-type:none;

}

.nav_list li a {
    font-size:18px;
    font-family: arial;
    color:#b64366;
    text-decoration:none;
    padding:4px 4px 5px 10px;
    background-image:url('../images/nav_divider.png');
    background-repeat:no-repeat;
    background-position:right;
    font-weight:bold;
    cursor:pointer;

    }

这就是它的样子(photoshop): enter image description here

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

以下是您的解决方案:http://jsfiddle.net/3jWwH/

Html有一些错误,例如&#39; a&#39;标签没有正确结束&#39; / a&#39;。

&#39; br /&#39;工作得很好,你只需要添加浮动:左边的&#39; .nav_list li&#39;

另外我认为你应该在“&#39; li&#39;而不是&#39; a&#39;。

这是对的吗?

答案 1 :(得分:0)

我认为这就是你想要的:

http://jsfiddle.net/zXzXn/1/

<强> CSS:

.nav_list {
    float:right;
    margin-top:55px;
}

.nav_list li {
    display:inline-block;
    list-style-type:none;
    text-align:center;
    margin:0 10px 0 0;

}

.nav_list li a {
    font-size:18px;
    font-family: arial;
    color:#b64366;
    text-decoration:none;
    padding:4px 10px 5px 10px;
    background-image:url('../images/nav_divider.png');
    background-repeat:no-repeat;
    background-position:right;
    font-weight:bold;
    cursor:pointer;
    display:block;

}
.nav_list li a:hover{
    border-bottom:2px solid #b64366;
}

答案 2 :(得分:0)

您可以为每个列表元素设置宽度,以将它们约束到特定宽度。这将导致单词分成多行。

.nav_list li a {
    width: 100px;
}

然后添加底部边框以使悬停下划线。

.nav_list li :hover {
    border-bottom: 1px solid #b64366;
}