为什么子纵向边距不会扩展父容器?

wil*_*age 29 css margin

我遇到过一个案例,我需要一个孩子的边距来扩展父容器.我发现父分区外的空间已分配,但父分布本身并未扩展.然后我发现通过向父母添加`overflow:hidden'我可以解决这个问题.

任何人都可以解释为什么会这样吗?

更新:

我发现向父级添加任何填充或边框值也会修复此问题.

更新的示例

Sco*_*ttS 16

这里简明扼要地描述了"为什么"的答案.某些属性可以建立" 块格式化上下文 ".即:

浮筒,绝对[和固定]定位元素,块容器(如直列块,表细胞,和表字幕)未阻断盒,和块盒用"溢出"以外"可见的"(除非当该值已传播到视口)为其内容建立新的块格式化上下文.

它是块格式化上下文的这种变化就是这个原因为何作为评价工作上面给出的如何这样的解决方案margin(在的情况下的前述float,padding以下流入元件)进行操作.

  • 链接到的文章不再可以从colinaarts.com域获得,但可以[这里](https://web.archive.org/web/20150423190902/http://colinaarts.com/articles/the-magic-of -overflow隐藏/).简单而恰到好处.谢谢! (2认同)

Thi*_*rry 5

我认为利润率下降是原因:http : //www.w3.org/TR/CSS2/box.html#collapsing-margins