CSS保证金崩溃

pub*_*tic 25 css margin

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

Jim*_*Jim 74

不可以.如果有两个相邻的垂直边距,则使用两个中较大的一个而忽略另一个.

因此,例如,如果你有两个块显示元素A,其后面是B,A的底边距为3em,而B的上边距为2em,则它们之间的距离为3em .

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

如果您没有设置任何边距,则不会有任何边距崩溃.它与使用的元素类型没有任何关系 - 它适用于所有元素类型,而不仅仅是<div>元素.

阅读CSS 2.1规范以获取更多详细信息.

  • +1 - 很好的答案.此外,当元素浮动,绝对定位或内联块时,不会发生边缘折叠.更多信息:http://reference.sitepoint.com/css/collapsingmargins (7认同)
  • 在给出一些变化的情况下,将提升答案:1.在"3em/2em"示例中,您可能希望使用绝对单位; 在这种情况下,2em /可能/大于3em 2."如果你设置边框或填充......" - 这仅在某些情况下是正确的,而不是在标准的'A后跟B'中 (6认同)