0

这是一个jsFiddle。

我的目标是有一个 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;
    }
4

2 回答 2

3

因为他们没有身高!这是由于float:您正在使用的所有内容,请尝试将其替换为display:inline-block您应该接近解决方案。

http://jsfiddle.net/px4Qy/2/

我添加text-align:right;了定位导航。将此更改为text-align:center;使菜单居中。

于 2013-05-15T23:55:28.483 回答
-1

#menu元素没有获得背景颜色,因为它没有计算高度,因为导航项是浮动的,要么在其上设置固定高度,要么添加overflow: hidden

#menu {
    background: #bf4040;
    position: relative;
    width: 95%;
    margin: 0 auto;
    overflow:hidden /* clears the floating elements giving the container height */
}
于 2013-05-16T00:00:03.420 回答