您好,非常感谢您倾听。这对我来说不是一个紧迫的问题,我只是好奇下面的代码为什么会这样做。我希望在可见页面周围有一个边框(或边距),以及一个嵌套的DIV,其中“100%高度和宽度”指向该边框的内部(以便进一步嵌套)。CSS:100% - 高度/宽度边界div内的DIV创建垂直滚动条,但不是水平滚动条
<html>
<body style='height:100%; width:100%; margin:0;'>
<div style='border:5px solid green'>
<div style='height:100%; width:100%;'>
</div>
</div>
</body>
</html>
很显然,我(觉得)知道盒模型,什么100%的机构(这里:第一DIV的内容框),我知道如何使用绝对定位来解决问题。
但我不明白:在铬以及在Firefox,为什么我得到一个垂直滚动条但没有水平一个?它看起来像第二个DIV中的100%高度不考虑第一个DIV(尊重5px边框)的内容框,而不考虑整个BODY内容框。然而,对于100%的宽度,事情就像我想的那样工作 - 没有水平滚动条出现。
有人能够启发我吗?这是历史性的浏览器行为?
EDIT在FredWilson的回答之后:如果您给出BODY绝对尺寸的height:100px; width:100px'结果保持不变:垂直边框延伸100px高度,但水平边框被包含。我尝试重读the CSS spec的小字,但到目前为止,我没有看到高度和宽度处理之间的任何区别。
左:Firebug中的BODY标签;右图:Firebug中的第一个DIV标签。
你不能设置正文元素的border属性吗?我不知道,因为我从来没有用过这种方式。 – EarthMind 2011-03-03 19:35:46
不,这会使高度和宽度都大于当前窗口大小。我知道有解决方法,我只想了解为什么上面的代码片段会被解释为像这样:-) – 2011-03-03 19:41:04
就像我在下面说的,在第一张图片中,您的主体渲染@ 100px。在第二个图像中,你有内部div将外部div高度推到100%(身体)。浏览器仍然计算边框并在正文外部呈现外部div 10px。可能没有多大意义,但DOM像这样很有趣。 – 2011-03-03 21:51:46