什么是BFC
html元素分为普通流,浮动流,定位流。
普通流:行内元素在位置够的情况下左右排列,块状元素独占一行排列。
浮动流:元素按照普通流位置出现,然后根据设置浮动,会往左右移动。
绝对定位:元素会整体脱离普通流,绝对定位不会对其他兄弟元素造成影响。
BFC可以看作元素的一种属性,当元素拥有了BFC的属性时,这个元素就可以看作隔离了的独立容器,容器里的元素不会在布局上影响到外面的元素。
如何触发BFC:
1.根元素(html)
2.浮动元素(元素的float不是none)
3.绝对定位元素(元素的position为absolute或者fixed)
4.display为inline- block等
5.overflo不为visible的元素
BFC作用和特性
1.可以避免外边距margin重叠,例如给父元素设置overflow:hidden。
2.清除浮动,在父元素中添加overflow:hidden,可以解决子元素设置了浮动后脱离父元素的情况。
3.解决浮动元素把未浮动元素覆盖的问题,在未浮动的元素中添加 overflow:hidden解决,同时可以通过这种特性做自适应宽度等需求等。