按照之前的理解的同一个BFC下的两个兄弟元素A和B原本存在margin折叠,但是如果A和B都生成了自己的BFC,就会使margin折叠失效
但这里有个小demo
可以发现有两个触发BFC的属性可以消除margin折叠
display: inline-block
float
但是这些却不行
display: flex/table-cell
overflow: hidden
请问这是为什么呢?
按照之前的理解的同一个BFC下的两个兄弟元素A和B原本存在margin折叠,但是如果A和B都生成了自己的BFC,就会使margin折叠失效
但这里有个小demo
可以发现有两个触发BFC的属性可以消除margin折叠
display: inline-block
float
但是这些却不行
display: flex/table-cell
overflow: hidden
请问这是为什么呢?
以下MC代表margin-collapsing
目前了解到的是这样:
产生BFC的盒子不会与子盒子产生MC
display: inline-block的元素不与兄弟元素和父元素发生MC(因为inline-block生成的是IFC)
position: absolute和float元素不与兄弟元素和父元素发生MC, 但是会与后一个产生了BFC的但没脱离文档流(in-flow)的产生MC
2 回答889 阅读✓ 已解决
3 回答712 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答2.6k 阅读
1 回答1.1k 阅读✓ 已解决
再贴一下这个链接