欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!

 

一般发生外边距合并主要有以下三种情况:

1.相邻兄弟姐妹元素

两个兄弟元素之间的外边距,会取两个元素外边距的最大值。

<p style="margin-bottom: 30px;">这个段落的下外边距被合并...</p><p style="margin-top: 20px;">...这个段落的上外边距被合并。</p>

按照上面的例子可以得出,两个p元素之间距离为30px

2.父元素和子元素

这种情况又可以分为以下两种:

父元素的上外边距和第一个子元素的上外边距

父元素的下外边距和最后一个子元素的下外边距

这两种情况,最终显示出来的结果都是取二者中的最大值。

3.空元素

自己的上外边距会和自己的下外边距合并

<p style="margin-bottom: 0px;">这个段落的和下面段落的距离将为20px</p><div style="margin-top: 20px; margin-bottom: 20px;"></div><p style="margin-top: 0px;">这个段落的和上面段落的距离将为20px</p>

这样第一个p元素和第三个p元素之间距离为20px

阻止合并方法:

通用方法

处于静态流元素会发生合并,所以floatposition:absolute都不会发生合并

设置为inline-block ,也不会发生合并

针对于父元素和子元素情况不合并方法

以下都不会发生合并

设置了清除浮动属性

因为margin需要直接接触才能合并,所以父元素或子元素中有borderpadding,或者二者之间有元素

注意:如果两个外边距值中有一个为0,也会发生合并。

如果有负外边距,合并后外边距为最大正边距加上最小负边距(绝对值最大的一个),如上面元素下边距为20px,下面元素上边距为-20px,则最后为0px

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/rumen/r37607.shtml