CSS保证金崩溃

所以,当你没有为给定的div元素设置任何边距或填充或边框时,基本上会发生边缘折叠?

不可以。当您有两个相邻的垂直边距时,两者中较大的一个被使用,另一个被忽略。

因此,例如,如果您有两个块显示元素A,其后是B,A的下边距是3em,而B的上边距是2em,那么它们之间的距离将是3em 。

如果您设置边框或填充,这可以防止发生折叠。 在上面的例子中,两个元素之间的距离将是5em。

如果你没有设定任何利润率,那么就不会有任何利润率崩溃。 它与使用的元素types没有任何关系 – 它适用于所有元素types,而不仅仅是<div>元素。

阅读CSS 2.1规范了解更多细节。

“expression式的折叠边界意味着两个或更多个盒子(可能彼此相邻或嵌套)的相邻边界(没有非空的内容,填充或边界区域或清除它们)将形成单个边界。

来源: Box模型 – 8.3.1折叠边距