您看到的是正确的 CSS 行为。
例如,考虑您的 HMTL 片段:
<div id="header"></div>
<div id="main-container"></div>
使用以下 CSS:
body {
margin: 0;
}
#header {
width: 1000px;
margin: auto;
height: 164px;
background-color: yellow;
}
#main-container {
height: 278px;
background: pink url('http://placekitten.com/2000/278') top center no-repeat;
width: 100%;
}
参见演示:http: //jsfiddle.net/audetwebdesign/5xwRu/
对于宽度超过 1000 像素的页面,您的页眉会按预期居中。
你的背景图片填满了页面的宽度,因为它#main-container
有 100% 的宽度。
当您将页面宽度减小到小于 1000 像素时,您会看到一个水平滚动条出现,因为固定宽度的标题太宽而无法容纳在视口中,这会触发溢出条件。
在这种情况下,CSS 引擎会在其右侧创建一些空白区域,#main-container
因为#main-container
其计算宽度小于 1000 像素,并填充了视口宽度(小于 1000 像素),其中不包括为溢出内容创建的空间。
您可以通过多种方式解决此问题,但这部分取决于您想要做什么。
您可以按如下方式设置最小宽度:
#main-container {
height: 278px;
background: pink url('http://placekitten.com/2000/278') top center no-repeat;
width: 100%;
min-width: 1000px;
}
请参阅演示小提琴中的示例 2。
注意:您可能有一个overflow: hidden
应用了 CSS 属性的包装容器。如果是这种情况,您可能看不到水平滚动条。