3

我有一个标题 div,它以 100% 的宽度固定在浏览器窗口的顶部。在标题 div 中有一个带有标题文本的 div 和一个带有水平列表的 div。水平列表 div 应该出现在标题文本 div 的右侧。

这是我的 CSS 和 HTML:

#header {
  position:fixed;
  top:0;
  left:0;
  right:0;
  background-color:#333333;
  padding:20px;
}

#title {
  float:left;
  color:#000000;
  font-size:30px;
  margin-right:24px;
  background-color:#ffffff;
  padding:8px;
}

#navigation ul {
  padding:0;
  margin:0;
  list-style-type:none;
}

#navigation ul li {
  display:inline;
  margin-right:20px;
  padding:3px;
  background-color:#ffffff;
}

#navigation ul li a {
  color:#000000;
  text-decoration:none;
}
<div id="header">
  <div id="title">Some Title Text</div>
  <div id="navigation"><ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">About</a></li>
    <li><a href="#">Contact</a></li>
    </ul></div>
</div>

所以现在标题和导航 div 在标题 div 内左对齐。如何将标题和导航 div 水平居中?

编辑:更喜欢不使用硬编码宽度(例如width: 500px)的解决方案,因为列表大小并不总是相同。

4

3 回答 3

5

一种适用于更改标题和/或两个 div 宽度的方法(如果标题变长或变短,或者添加或删除导航项):

设置text-align: center#header,display: inline-block#title-#navigation演示http://dabblet.com/gist/3151355

CSS 的变化:

#header {
    position:fixed;
    top:0;
    left:0;
    right:0;
    background-color:#333333;
    padding:20px;
    text-align: center; /* added */
}
#title {
    color:#000000;
    font-size:30px;
    margin-right:24px;
    display: inline-block; /* took out float:left and added this */
    background-color:#ffffff;
    padding:8px;
}
#navigation {
    display: inline-block; /* added */
}

我还添加#navigation ul li:last-child {margin-right:0}了为了在最后一个列表项之后没有24px边距(这会使导航右侧看起来有更多空间)

于 2012-07-20T15:34:46.770 回答
2

您可以将标题和导航 div 包装在另一个 div 中,然后使用margin: 0 auto.

HTML

<div id="header">
    <div id="center">
        <div id="title">Some Title Text</div>
        <div id="navigation">
            <ul>
            <li><a href="#">Home</a></li>
            <li><a href="#">About</a></li>
            <li><a href="#">Contact</a></li>
            </ul>
        </div>
    </div>
</div>​​​​​​​​

CSS

#center {
    width: 500px; /* or any other width */
    margin: 0 auto;
}

JS 小提琴:http: //jsfiddle.net/rJyuJ/

于 2012-07-20T15:24:43.180 回答
0

嗨,您能否尝试使用 #header 的以下 css

#header {
    position:fixed;
    top:0;
    left:0;
    right:0;
    background-color:#333333;
    padding:20px;
    text-align:center;
}
于 2012-07-20T15:25:11.900 回答