BFC 是什么?如何生成 BFC万搔?BFC 有什么作用胡桨?舉例說明
BFC直譯為"塊級格式化上下文"。它是一塊獨立的區(qū)域瞬雹,容器里面的子元素不會影響到外面的元素昧谊。要促發(fā)BFC的生成,則滿足以下其中一個條件:
- 1.float屬性不為none酗捌;
- 2.position為absolute或fixed呢诬;
- 3.display為inline-block, table-cell, table-caption, flex, inline-flex;
- 4.overflow不為visible胖缤;
BFC可以清除內(nèi)部浮動尚镰;BFC可以包含浮動,讓父容器生成新的BFC可以使父容器在視覺上包圍了浮動的子元素哪廓,因而清除了浮動狗唉。比如例子:例子說明11
防止margin重疊,屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊涡真,我們可以把其中一個元素生成新的BFC敞曹,這樣它們的邊距就不會合并。
在什么場景下會出現(xiàn)外邊距合并综膀?如何合并?如何不讓相鄰元素外邊距合并局齿?給個父子外邊距合并的范例
- 外邊距合并指當兩個垂直外邊距相遇時剧劝,它們將形成一個外邊距。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者抓歼。當兩個外邊距都為負數(shù)時讥此,取其絕對值的較大者,當兩個外邊距為一正一負時谣妻,取兩者的和萄喳。
-
父子外邊距合并的需要滿足父元素沒有border和paddinng隔開。
形成BFC 可以阻止外邊柜合并蹋半,對于垂直相鄰的元素可以設(shè)置浮動或設(shè)置其中一個元素為display:inline-block;對于父子元素外邊距他巨,可為父元素設(shè)置padding或border。
父子外邊距合并:
-
給父元素添加border
-
添加padding