在DIV内水平居中UL

时间:2011-07-22 16:40:51

标签: css html center html-lists

我的div里面有ul,我希望将ul水平放在屏幕的中心位置。

可以在此处找到项目的完整代码:jsfiddle

我尝试过使用:

margin: 0 auto; /* After setting the width of course */
text-align: center; /* Ran out of ideas!! */

我也尝试过相对定位和设置%而不是px,但这并没有给我准确的屏幕中心,而且,如果我在菜单中添加了更多项目,那么在包含它们之后它就不会是中心(使用一个 %)。

我的完整代码位于jsfiddle,供您修改。

为方便起见,我贴了一些(我认为的)相关代码:

CSS:

/* Main*/
ul#nav { 
display: inline-block;
padding: 0px; 
list-style-type: none; 
white-space: nowrap;
position: relative;
top: 10px;
left: 10%; /* This is what im currently using, but as thought, it doesnt work as needed :(*/
border: 2px solid chocolate;
-moz-border-radius: 10px; /* Border Radius for Mozilla Firefox */
border-radius: 10px;      /* Border Radius for everything else*/
}

ul#nav li { 
float: left; 
font-family: 'Myraid Pro', Arial, Helvetica, sans-serif;  /*Use available font for menu */
font-weight: bold; 
margin: 0; 
padding: 5px 0 4px 0; 
background-color: #ee8043; /*Background Colour for the <li>*/
padding: 5px;              /* Padding for the LI */
-moz-border-radius: 8px; /* Border Radius for Mozilla Firefox */
border-radius: 8px;      /* Border Radius for everything else*/

}

HTML:

        <div id="header">
        <a href="index.html"><img id="logo" src="images/Dafne_Logo.png"/></a>

        <div id="navbar">
            <ul id="nav">
                <li><a href="index.html" rel="home">Home</a></li>
                <li class="menu_separator">|</li>
                <li><a href="index.html">News</a></li>
                <li class="menu_separator">|</li>
                <li><a href="forums.html">Forums</a></li>
                <li class="menu_separator">|</li>
                <li><a href="signup4327.html?to=%252F">Signup</a></li>
                <li class="menu_separator">|</li>
                <li><a href="login4327.html?to=%252F">Login</a></li>
                <li class="menu_separator">|</li>
            </ul>
        </div>

    </div>

    <div id="coloured_bar"></div>

<小时/> 基本上,我想将#nav包含在#navbar中,#navbar包含在#header中。

2 个答案:

答案 0 :(得分:4)

text-align:center添加到#navbar div应该这样做,因为您的列表是inline-block

如果您希望它居中,则必须删除left:10%

答案 1 :(得分:2)

你走了:http://jsfiddle.net/gzB6a/我添加了

div#navbar {
  text-align: center;
}

并删除了

the ul#nav { left: 5%; }