试图将标题中的菜单居中?

时间:2013-05-15 23:54:18

标签: css html5

Here's a 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;
    }

2 个答案:

答案 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 */
}