我的目标是让菜单中95%的标题宽度居中。
为什么#header
或#menu
的背景颜色不显示?
当我设法显示背景颜色时,它不会在标题中居中。
这是我的代码:
HTML:
<header id="header">
<nav id="menu">
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</nav>
</header>
CSS:
#header {
background: black;
}
#menu {
background: #bf4040;
position: relative;
width: 95%;
margin: 0 auto;
}
ul#nav {
margin: 0;
padding: 0 20px;
width: auto;
}
ul#nav li {
float: left;
padding: 0;
list-style: none;
list-style-image: none;
margin: 2px 2px;
}
ul#nav li a {
font-size: 12px;
font-weight: bold;
text-decoration: none;
line-height: 37px;
display: block;
text-align: left;
padding: 0px 15px;
white-space: nowrap;
text-transform: uppercase;
color: #000;
border-radius: 10px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
}
ul#nav li.current a, ul#nav li a:hover {
color: #ffe200;
background: #3d5a81;
}
答案 0 :(得分:3)
这是因为他们没有身高!
这是由于您使用的所有float:
,请尝试将其替换为display:inline-block
,您应该接近解决方案。
http://jsfiddle.net/px4Qy/2/
我添加了text-align:right;
来定位导航。
将其更改为text-align:center;
以使菜单居中。
答案 1 :(得分:-1)
#menu
元素没有获得背景颜色,因为它没有计算高度,因为导航项是浮动的,要么在其上设置固定高度,要么添加overflow: hidden
#menu {
background: #bf4040;
position: relative;
width: 95%;
margin: 0 auto;
overflow:hidden /* clears the floating elements giving the container height */
}