我是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;
,但它不起作用。
答案 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;
}