<div id="outer" style="height: 200px;">
<div id="inner" style="position: static;margin: 1px;border: 2px;padding: 3px;height: 10px;"></div>
</div>
对于如上代码,根据css2.2文档规定:
对于position
为static
或relative
的元素,其containing block
为祖先元素中最近的block container box
的content box
(除margin
,border
,padding
外的区域);
可以得到:div#inner
的包含块即div#outer
产生的盒的内容区,由于该内容区的高度为200px
(div#outer
没有margin
、border
、padding
),所以包含块的高度也为200px
;
又根据CSS权威指南(P275,第四版):
vertical formatting also has seven related properties: margin-top , border-top , padding-top , height , padding-bottom,border-bottom , and margin-bottom .
The values of these seven properties must equal the height of the block box's containing block.
可以得到:1px
+ 2px
+ 3px
+ 10px
+ 3px
+ 2px
+ 1px
= 200px
;
结论肯定是错的,但权威指南应该不会错(引用部分在该书的第三版和第四版都进行了相同的表述),文档更不会错,所以必然是自己的理解有问题,希望有高人解惑!
第一个 : 通俗点 子盒子 包含块是最近父盒子的内容块
第二个 这些值是指的父盒子包裹的内容块所有元素 并不是一个子元素未撑满 强行计算这个不等式....