关于水平导航栏

时间:2014-04-24 22:01:53

标签: html css navigation

我的代码很简单,我只想要一个水平显示链接的导航栏。应该很容易,但我从来没有做过。网上找到的例子如下:

<!-- Navigator -->
    <div id="nav">
        <ul>
            <li><a href="#">Anchor 1</a></li>
            <li><a href="#">Anchor 2</a></li>
            <li><a href="#">Anchor 3</a></li>
        </ul>
    </div>

和CSS:

/* So it's cantered on top */
#nav {
margin:0 50%; 
position:fixed;

}

#nav ul {
list-style-type:none;
margin:0;
padding:0;
position: absolute;
}   

#nav ul li {
float:left;
}   

据我所知,这应该工作,有人可以请问我有什么不对吗?删除位置:固定#nav会使其水平,但不会粘在我的视口顶部。

5 个答案:

答案 0 :(得分:0)

你只是复杂的事情。摆脱你使用的所有位置,因为你根本不需要它们。我只是在codepen上嘲笑了一些东西让你看看:http://codepen.io/nighrage/pen/mhgze。 以下css就是您所需要的,菜单将在一定程度上响应。如果您想要除了显示内容之外还想做些什么,请告诉我。

#nav ul {
list-style-type:none;
margin:0;
padding:0;
width:100%;
float:left;
text-align:center;
}   

#nav ul li {
display:inline-block;
padding: 0 10px;
}  

答案 1 :(得分:0)

尝试从ul中删除位置:绝对值。我认为不需要实现你的目标。

#nav ul {
list-style-type:none;
margin:0;
padding:0;
}   

答案 2 :(得分:0)

由于两个原因,它无法正常工作: 1.保证金 3.我认为列表项被设置为绝对(继承)。将其设置为静态。

这是一个小提琴:http://jsfiddle.net/txDSa/

#nav {
position:fixed;
}

#nav ul {
list-style-type:none;
margin:0 !important;
padding:0;
position: static;
}   

#nav ul li {
margin:0 ;
float:left;
}  

答案 3 :(得分:0)

您可以移除绝对位置http://jsfiddle.net/gdiamond/Jn9P6/

#nav {
margin:0 auto;
width:300px;
}

#nav ul {
list-style-type:none;
margin:0;
padding:0;
}   

#nav ul li {
float:left;
padding-left: 12px;
}

答案 4 :(得分:0)

/* So it's cantered on top */
#nav {
text-align:center;
}

#nav ul {
display:inline;
}   

#nav ul li {
display:inline-block;
padding:10px;
}   

Jsfiddle:http://jsfiddle.net/4EJHF/

基本上,您希望文本对齐以居中在nav元素上。然后你的无序列表应该内联显示。最后,您的列表元素应显示为内联块。

还有另一种方法有两个浮点数,但您需要手动居中导航:

#nav ul {
float:left;
list-style-type:none;
}   

#nav ul li {
float:left;
padding:10px;
}