【发布时间】:2010-09-11 06:51:12
【问题描述】:
所以本质上,当您没有为给定的 div 元素设置任何边距、填充或边框时,边距折叠会发生吗?
【问题讨论】:
所以本质上,当您没有为给定的 div 元素设置任何边距、填充或边框时,边距折叠会发生吗?
【问题讨论】:
“折叠边距表示两个或多个框(可能彼此相邻或嵌套)的相邻边距(没有非空内容、填充或边界区域或间隙将它们分开)组合成一个单一的边距。”
【讨论】:
没有。当您有两个相邻的垂直边距时,使用两者中较大的一个,而忽略另一个。
因此,例如,如果您有两个块显示元素 A,然后是 B,并且 A 的下边距为 3em,而 B 的上边距为 2em,那么它们之间的距离将是 3em。
如果您设置边框或填充,这可以防止发生折叠。在上面的例子中,两个元素之间的距离将是 5em。
如果您不设置任何边距,则不会有任何边距可折叠。它与使用的元素类型没有任何关系 - 它适用于所有元素类型,而不仅仅是 <div> 元素。
阅读the CSS 2.1 specification了解更多详情。
【讨论】:
overflow: hidden