塊格式化上下文(block formatting context)?是頁面上的一個獨立的渲染區域,容器里面的子元素不會在布局上影響到外面的元素。它是決定塊盒子的布局及浮動元素相互影響的一個因素。
下列情況將創建一個塊格式化上下文:
- 使用float屬性,值不為none。
- 使用position屬性,值為absolute或fixed。
- 使用display屬性,值為inline-block、table-cell、flex、grid等。
- 使用overflow屬性,值不為visible。
BFC的作用
1.清除內部浮動:對子元素設置浮動后,父元素會發生高度塌陷,也就是父元素的高度變為0。解決這個問題,只需要把把父元素變成一個BFC就行了。常用的辦法是給父元素設置overflow:hidden。
2.上下margin重合問題,可以通過觸發BFC來解決