BFC是w3c css2的一個規(guī)范概念:規(guī)定了子元素如何定位,以及和其他子元素的關(guān)系和項目作用
是一個獨立的布局環(huán)境,不受外界影響,在一個BFC中,所有塊盒和行盒都是垂直沿著父元素邊框排列的;
規(guī)則:
垂直方向的距離有margin決定,同一個BFC里的盒子相鄰的margin會重疊
BFC 指的是塊級格式化上下文,一個元素形成了 BFC 之后,那么它內(nèi)部元素產(chǎn)生的布局不會 影響到外部元素,外部元素的布局也 不會影響到 BFC 中的內(nèi)部元素。一個 BFC 就像是一個隔離區(qū)域,和其他區(qū)域互不影響。 一般來說根元素是一個 BFC 區(qū)域,浮動和絕對定位的元素也會形成 BFC,display 屬性的值為 inline-block、flex 這些 屬性時也會創(chuàng)建 BFC。還有就是元素的 overflow 的值不為 visible 時都會創(chuàng)建 BFC。
如何形成BFC:
1.overflow != visible
2.position != static || position != relative
3.float != none
4.display的值是inline-block、table-cell、flex、table-caption或者inline-flex;
IFC 指的是行級格式化上下文,它有這樣的一些布局規(guī)則:
(1)行級上下文內(nèi)部的盒子會在水平方向,一個接一個地放置。
(2)當一行不夠的時候會自動切換到下一行。
(3)行級上下文的高度由內(nèi)部最高的內(nèi)聯(lián)盒子的高度決定。