为什么我不能将我的菜单栏放在中心位置?

时间:2012-04-04 15:52:21

标签: html css position center menubar

我是HTML和CSS的新手。我正在使菜单栏水平,我似乎无法将其与屏幕中心对齐。我尝试了margin:0 auto;<body align=center>,但似乎都没有效果。

这是我的代码:

<html>
<head>

<style>

#menu {
margin:0 auto;
float:left;
list-style:none;
padding:0;
border-top:1 solid #ccc;
border-left:1 solid #ccc;
border-bottom:1 solid #ccc;
}

#menu li {
float:left;
background-color:#f2f2f2;
}

#menu li a {
display:block;
padding:10px 80px;
text-decoration:none;
color:#069;
border-right:1px solid #ccc;
font-weight:bold;
}   

#menu li a:hover {
color:#c00;
background-color:#fff;
}

</style>

</head>

<body>

<ul id="menu">
<li><a href="#">Home</a></li>
<li><a href="#">Gallery</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">FAQs</a></li>
<li><a href="#">Donate</a></li>
</ul>

</body>
</html>

正如您所看到的,我正在使用margin:0 auto;,但它不起作用。

4 个答案:

答案 0 :(得分:2)

您有float个元素。浮动元素不会遵循该居中,除非您的容器被视为块或内联块。

要达到预期效果,您需要执行this example中的操作。

通过添加容器,中心边距并在display: inline-block上使用#menu,它们将像普通内容一样居中。请注意,这可能在IE中不起作用,在这种情况下,您应该添加一行*display: inline;

Example |代码

HTML

<div class='container'>
    <ul id="menu">
        <li><a href="#">Home</a></li>
        <li><a href="#">Gallery</a></li>
        <li><a href="#">Contact</a></li>
        <li><a href="#">FAQs</a></li>
        <li><a href="#">Donate</a></li>
    </ul>
</div>

CSS

.container{
    text-align: center;
    width: auto;
    margin: 0 auto;
}

#menu {
    margin:0 auto;
    display: inline-block;
    list-style:none;
    padding:0;
    border-top:1 solid #ccc;
    border-left:1 solid #ccc;
    border-bottom:1 solid #ccc;
}

#menu li {
    float: left;
    background-color:#f2f2f2;
}

#menu li a {
    display:block;
    padding:10px 10px;
    text-decoration:none;
    color:#069;
    border-right:1px solid #ccc;
    font-weight:bold;
}   

#menu li a:hover {
    color:#c00;
    background-color:#fff;
}

答案 1 :(得分:1)

如果要将菜单放在其父元素(在本例中为正文)中,请为菜单指定一个宽度。此外,移除浮动 - 如果您将其向某个方向浮动,它将不会居中。

答案 2 :(得分:0)

您可以为菜单指定宽度width: 400px;或所需宽度。然后,您可以将左右边距设置为自动margin-left: auto; margin-right: auto;

答案 3 :(得分:0)

您需要为menu添加宽度并移除float:left

例如

#menu {
margin:0 auto;    
list-style:none;
padding:0;
border-top:1 solid #ccc;
border-left:1 solid #ccc;
border-bottom:1 solid #ccc;
width:900px;
display:block;
}