淺談什么是前端BFC


簡介:什么是BFC?

BFC(Block Formatting Context)的英文縮寫簡稱,block可以理解為一個簡單的盒模型, Formatting Context則為block的上下文渲染環境。其作用是使內部元素的布局不受外部元素影響。

BFC的觸發條件:

  • 根元素,也就是html根標簽;
  • position:fixed/absoluted;
  • float屬性值不是none的;
  • overflow屬性值不是visible的;
  • display屬性值:inline-display/table-cell/table-caption/flex/inline-flex;

BFC作用:

  • bfc內部元素的布局不受外部元素影響。
  • bfc區域不會出現margin重疊
  • bfc區域計算高度時候會自動計算浮動元素。
  • bfc區域不會和浮動元素重合。

BFC的場景應用:

  1. 防止margin出現重疊:
    這里可以很明顯的看到div1的margin是生效了的,但是div2的margin在於1相鄰的部分是沒有起到作用的
    在這里插入圖片描述
    在這里我們在div2外部套上一個div,並添加overflow:hidden屬性,使其成為一個bfc區域,這樣div2的margin也就生效了。
    在這里插入圖片描述
  2. 兩欄布局,防止出現文字環繞效果:
    在這里可以看到當div1設置為浮動后,會浮動在div2的上面,看起來像是div1被div2環繞包裹起來的感覺;
    在這里插入圖片描述
    為div2添加一個包裹div並設置overflow屬性,使其成為一個BFC區域,這樣就可以避免出現文字環繞效果,並且可以實現自動實現兩欄布局效果。在這里插入圖片描述
  3. 清除浮動,防止元素塌陷:
    這個很好理解就是我們在頁面布局的時候,如果不給父元素設置一個高度的話,子元素設置浮動后,子元素並不能將父元素的高度自動撐起來,這個時候給父元素設置一個overflow:hidden屬性后,就可以起到清除浮動的作用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM