在解釋BFC之前风宁,先說一下文檔流翁潘。我們常說的文檔流其實分為定位流、浮動流和普通流三種悔捶。而普通流其實就是指BFC中的FC。FC是formatting context的首字母縮寫单芜,直譯過來是格式化上下文蜕该,它是頁面中的一塊渲染區(qū)域,有一套渲染規(guī)則洲鸠,決定了其子元素如何布局堂淡,以及和其他元素之間的關(guān)系和作用。常見的FC有BFC扒腕、IFC绢淀,還有GFC和FFC。BFC是block formatting context瘾腰,也就是塊級格式化上下文皆的,是用于布局塊級盒子的一塊渲染區(qū)域。
觸發(fā)BFC的條件:
- 根元素蹋盆,即HTML元素
- float的值不為none
- overflow的值不為visible
- display的值為inline-block费薄、table-cell、table-caption
- position的值為absolute或fixed
BFC的特點:
- 不被浮動元素覆蓋栖雾。應(yīng)用:兩列布局楞抡,一列固定寬度,一列自適應(yīng)
- 可以包含浮動元素析藕。應(yīng)用:清除浮動影響
- margin collapse召廷。同一個BFC中的元素會發(fā)生margin折疊。不同的BFC之間不發(fā)生margin折疊噪径。
- 消除文本環(huán)繞
參考鏈接:
https://juejin.im/post/5909db2fda2f60005d2093db#heading-23
http://www.reibang.com/p/fc1d61dace7b
http://www.cnblogs.com/xiaohuochai/p/5248536.html