http://jsfiddle.net/CSS_Apprentice/ru8f6/
<div class="container">
<div id="header"></div>
<div id="content">
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<div id="box4"></div>
<span class="stretch"></span>
</div>
<div id="footer"></div>
</div>
.container {
width: 100%;
height: 100%;
border: 1px solid black;
}
#header {
border: 1px solid black;
width: 100%;
height: 50px;
}
#content {
border: 2px solid #444;
height: 125px;
text-align: justify;
-ms-text-justify: distribute-all-lines;
text-justify: distribute-all-lines;
padding-right: 25px;
padding-left: 25px;
}
#content > div {
border: 1px dashed black;
width: 100px;
height: 100px;
vertical-align: top;
display: inline-block;
*display: inline;
zoom: 1;
}
.stretch {
width: 100%;
display: inline-block;
font-size: 0;
line-height: 0;
}
#footer {
border: 1px solid black;
width: 100%;
height: 50px;
}
我正在使用“Justify Text”技巧来调整我的div,但我怀疑这是导致问题的原因。这不是一个大问题,但它只会让我感到困惑:)
答案 0 :(得分:6)
因为浏览器&#39;默认样式表。默认情况下,HTML body
标记的边距为8像素。有关浏览器列表的信息,请参阅here&#39;默认样式表。并且here代表了W3C的想法。
To&#34; fix&#34;这个,给它一个margin: 0;
body {
margin: 0;
}
答案 1 :(得分:1)
无论您是否指定了样式,都需要呈现样式。因此,如果您从未指定margin
或padding
body
(或任何其他元素,例如:paragraph
或h1
)应该有多少,则浏览器我们仍然必须以某种方式决定如何展示它。
您可能认为让所有未指定的值自动等于零是有意义的,但(例如)段落之间绝对没有间距,可能相当不合理。因此,某些元素有默认值(在本例中为body
元素),并且由于您没有指定body元素的边距值,因此它采用了浏览器的默认值。
为了使这些默认值中的许多值等于零,有些人决定通过“重置”来启动CSS,这实际上就像将一堆事物设置为您感觉到的值一样逻辑作为默认起点(通常为零值)。以Eric Meyer的css重置为例。 http://meyerweb.com/eric/tools/css/reset/
重置后,您应该通过覆盖已在上述“重置”部分设置的代码来指定。
总而言之,如果你已经设置:
body {
margin: 0;
}
它会使你的内容看起来像100%,但如果你没有意识到设置了默认值,并且如果你没有自己指定值,那么你将不断遇到同样的问题,然后浏览器的默认值是下一个最佳值。