BFC(Block Formatting Context)翻譯爲『塊級格式化上下文』。是一個獨立的渲染區域,只有(Block-level box)塊級盒子參與,BFC規定了內部盒子如何佈局,以及盒子之間的關係和做用。佈局
Box盒子是CSS 佈局的基本單位,在CSS中咱們普遍的使用兩種『盒子』——塊級盒子和內聯盒子。HTML元素的類型和display屬性,決定了一個Box(盒子)的類型。不一樣類型的Box(盒子),會參與不一樣的Formatting Context(格式化上下文)。flex
Formatting Context(格式化上下文) 是頁面中的一塊渲染區域,它決定了子元素將如何佈局,以及子元素之間的關係和做用。翻譯
Block Formatting Context,塊級格式化上下文,是Formatting Context(格式化上下文)的一種類型,只有(Block-level-box)塊級盒子參與;相對應有Inline Formatting Context (IFC內聯格式化上下文)。CSS3以後,還有GFC(Grid)和FFC(Flex)。orm
BFC塊級格式化上下文,簡單來講是一個封閉的區域,這區域裏面的盒子不會影響區域外面的佈局。BFC區域內的盒子須要遵照一些佈局規則,好比:盒子會按照垂直方向排,盒子垂直方向的距離由margin控制,BFC 區域不與浮動框重疊,計算BFC的高度時,浮動元素也參與計算等。根據BFC的佈局規則,BFC能夠解決清除浮動,外邊距合併等異常佈局,也能夠實現自適應兩欄佈局,阻止元素被浮動元素覆蓋。建立(觸發)BFC的條件有給元素添加overflow屬性且值不爲visible,float屬性且值不爲none,display屬性值爲:flow-root,inline-block,table-cell,table,table-row,flex,grid等。get
CSS of BFC it
it邦——BFCtable