当前位置: 首页 > Web前端 > CSS

marginoverlap及解决方案BFC

时间:2023-03-31 13:20:42 CSS

marginoverlap的统一解决方案;设置padding或border或触发BFCmarginoverlap有3种情况:首先清除所有margin格式Marginoverlap1.块级父元素和父子元素之间的第一个或最后一个子元素(父元素没有topborder,toppadding,inlineelement,clearfloat)。即父元素显示的外边距将直接成为父元素及其第一个子元素中较大的margin-top。父元素的高度:100或110是正确的。没有overflow:hidden时,parentmargin和childmargin重叠,parent的高度只有100。有了overflow:hidden,父元素变成了一个新的bfc,解决了边margin-top不塌陷进入距离重叠现象,所以parent的高度为110px;

2、相邻兄弟元素的两个div的margin是50px而不是90,取最大值。如果为负数,则绝对值最大。如果一个为正,另一个为负,则取两者之和。
2.清除内部浮动
3.防止边距重叠(BFC中子元素的边距重叠)。两个div中间的最大值30重叠了。在p外包裹一层容器,触发容器生成BFC。那么这两个P就不属于同一个BFC,也就不会出现margin重叠。

总结:因为元素BFC内外永远不会相互影响,所以当BFC外有浮动时,应该不影响BFC内的Box布局,BFC会缩小通过,不会与浮动重叠。同样,当BFC内部有浮动的时候,为了不影响外部元素的布局,BFC在计算高度的时候会把浮动的高度也包括进去。避免重叠边距也是同样的原因。