标签:
首先FC: Formatting Context 指页面中的一个渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系和作用。
CSS2.1中有BFC(block)和IFC(Inline).
BFC的布局规则:
什么情况会生成BFC:
1.根元素
2.float不为none的元素
3.position为absolute和fixed元素
4.overflow不为hidden的元素(这就是之所以 overflow:hidden可以清除浮动的原因).
5.display为inline-block,table-cell, table-caption, flex, inline-flex
所以可以根据以上的规则解决css中部分margin重叠的问题。
margin重叠 :
margin参数:上右下左(4个值),其他:四个边距两两对称,比如3个值时,分别对应上右下, 左边边距和右边值一样。
margin折叠结果:
除了与BFC有关情况,以下情况也不会发生重叠:
1.父元素有padding和border,则子元素的marginTop和父元素的marginTop不会重叠。
2.浮动元素以后的元素设置浮动闭合后,闭合元素上方会产生间隙,根据w3c规范规定,闭合浮动的元素会在其margin-top以上产生一定的空隙(clearance),该空隙会阻止元素margin-top的折叠,并作为间距存在于元素的margin-top的上方。闭合浮动的元素的border-top会紧贴着相应的浮动元素的margin-bottom。
(具体例子见
http://www.w3cplus.com/css/understanding-bfc-and-margin-collapse.html
)
具体例子见:
http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html
http://www.cnblogs.com/dojo-lzz/p/3999013.html
标签:
原文地址:http://www.cnblogs.com/xyf993/p/4874587.html