BFC基礎(chǔ)知識(shí)

1、BFC 是什么?如何生成 BFC?BFC 有什么作用?舉例說明。

BFC即塊級(jí)格式化上下文,它能將渲染區(qū)域用formatting context表示,決定了其子元素將如何定位,以及和其他元素的關(guān)系和相互作用;

生成BFC的方法:

1、根元素自動(dòng)生成BFC;

2、float屬性不為none的元素;

3、position為absolute或fixed;

4、display為inline-block,flex等;

5、overflow不為visible。

作用:某個(gè)區(qū)域生成一個(gè)BFC之后,就是頁面上一個(gè)隔離的獨(dú)立容器,容器里面的子元素不會(huì)影響到外面的元素,這樣就能克服很多問題,如:

a、克服margin合并問題,同一個(gè)BFC內(nèi)的相鄰元素,子元素與父元素或祖先元素及元素本身都可能產(chǎn)生外邊距合并的問題,這時(shí),如果將BFC內(nèi)的子元素也生成一個(gè)BFC,就能克服margin合并;

b、元素生成BFC之后,其不會(huì)再像普通元素一樣與浮動(dòng)元素產(chǎn)生重疊,另外給浮動(dòng)元素生成BFC后,浮動(dòng)元素會(huì)撐開父容器。

2、在什么場景下會(huì)出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?

以下幾種場景會(huì)出現(xiàn)外邊距合并:

a、子元素與父元素或祖先元素之間合并,如:第一個(gè)子元素的margin-top會(huì)與父元素的margin-top合并,合并之后margin為父子元素margin中的較大值;

b、相鄰元素之間合并,相鄰元素之間,上面元素的margin-bottom會(huì)與下面元素的margin-top合并,合并之后兩者之間的間距為兩個(gè)margin中的較大值;

c、元素自身上下margin合并,如:一個(gè)元素內(nèi)容為空時(shí),為其設(shè)置margin后,其上下margin會(huì)合并。

相鄰元素之間外邊距合并無論是設(shè)置border、padding還是各自生成BFC都無法阻止外邊距合并,最終合并成兩者margin中的較大值,這種情況可以通過設(shè)置其中一個(gè)元素的margin為預(yù)期兩者margin之和的方式來實(shí)現(xiàn)類似阻止邊距合并的效果,但未在本質(zhì)上解決外邊距合并。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,155評(píng)論 1 92
  • relative:生成相對(duì)定位的元素,通過top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 1,077評(píng)論 0 2
  • 一,浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響? 浮動(dòng)模型是一種可視化格式模型,浮動(dòng)...
    DeeJay_Y閱讀 1,003評(píng)論 0 4
  • 1.在什么場景下會(huì)出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個(gè)父子外邊距合并的范例 概念:在CSS當(dāng)...
    饑人谷_任磊閱讀 850評(píng)論 0 3
  • 2009年06月Looking哥作為生物專業(yè)參加高考,作為3+X+綜合的老考生來說,7/8/9,2天半的考試簡直就...
    鹽酸小檗堿閱讀 314評(píng)論 0 0

友情鏈接更多精彩內(nèi)容