CSS 中的 BFC 是什麼,有什麼作用?

BFC,即“塊級格式化上下文”(Block Formatting Context),是 CSS 中一個重要的概念,它指的是一個獨立的渲染區域,讓塊級盒子在佈局時遵循一些特定的規則。BFC 的存在使得我們可以更好地控制文檔流,處理浮動、清除浮動等問題。

 

 

BFC 的形成條件包括:

  • 根元素或包含它的元素
  • 浮動元素(元素的 float 不是 none)
  • 絕對定位元素(元素的 position 爲 absolute 或 fixed)
  • 行內塊元素(元素的 display 爲 inline-block)
  • 表格單元格(元素的 display 爲 table-cell)
  • 表格標題(元素的 display 爲 table-caption)
  • overflow 值不爲 visible 的塊元素

BFC 的特性包括:

  • 內部的 Box 會在垂直方向上一個接一個地放置。
  • Box 垂直方向的距離由 margin 決定,屬於同一個 BFC 的兩個相鄰 Box 的 margin 會發生重疊。
  • 每個元素的左外邊距與包含塊的左邊界相接觸(從左到右),即使浮動元素也是如此。
  • BFC 的區域不會與浮動元素重疊。
  • BFC 在頁面上是一個獨立的容器,外面的元素不會影響裏面的元素,反之亦然。
  • 計算 BFC 的高度時,浮動元素也參與計算。

BFC 的應用場景包括:

1、清除浮動:

當一個容器內部有浮動元素時,如果沒有給容器創建 BFC,那麼容器的高度將無法被撐開,導致一些問題,如邊框或背景不顯示、文字環繞等。可以通過在容器上創建 BFC 來解決這個問題,例如可以將容器的 overflow 設置爲 hidden。

2、避免 margin 重疊:

當兩個相鄰的盒子都設置了 margin 時,它們之間的距離將會是兩者 margin 中較大的一個,而不是將兩者相加。如果將其中一個盒子放入一個 BFC 中,可以避免 margin 重疊的問題。

3、實現多欄佈局:

通過創建 BFC,可以將容器劃分爲獨立的區域,在這些區域內佈局,從而實現多欄佈局。

4、防止浮動元素遮蓋:

當一個元素內部有浮動元素時,如果該元素沒有創建 BFC,那麼它的高度會縮爲0,從而導致元素下面的內容被浮動元素遮蓋。可以通過在元素上創建 BFC 來防止這種情況的發生。

總之,理解 BFC 的概念及其應用場景,對於編寫複雜的佈局代碼非常有幫助。通過創建 BFC,我們可以解決許多常見的佈局問題,例如清除浮動、避免 margin 重疊、實現多欄佈局等。

更多詳細的CSS知識體系,可以通過這裏瞭解學習

 

爲幫助到一部分同學不走彎路,真正達到一線互聯網大廠前端項目研發要求,首次實力寵粉,打造了《30天挑戰學習計劃》,內容如下:

HTML/HTML5,CSS/CSS3,JavaScript,真實企業項目開發,雲服務器部署上線,從入門到精通

  • PC端項目開發(1個)
  • 移動WebApp開發(2個)
  • 多端響應式開發(1個)

共4大完整的項目開發 !一行一行代碼帶領實踐開發,實際企業開發怎麼做我們就是怎麼做。從學習一開始就進入工作狀態,省得浪費時間。

從學習一開始就同步使用 Git 進行項目代碼的版本的管理,Markdown 記錄學習筆記,包括真實大廠項目的開發標準和設計規範,命名規範,項目代碼規範,SEO優化規範

從藍湖UI設計稿 到 PC端,移動端,多端響應式開發項目開發

  • 真機調試,雲服務部署上線;
  • Linux環境下 的 Nginx 部署,Nginx 性能優化;
  • Gzip 壓縮,HTTPS 加密協議,域名服務器備案,解析;
  • 企業項目域名跳轉的終極解決方案,多網站、多系統部署;
  • 使用 使用 Git 在線項目部署;

這些內容在《30天挑戰學習計劃》中每一個細節都有講到,包含視頻+圖文教程+項目資料素材等。只爲實力寵粉,真正一次掌握企業項目開發必備技能,不走彎路 !

過程中【不涉及】任何費用和利益,非誠勿擾 。

詳細進入瞭解

30 天挑戰學習計劃 Web 前端從入門到實戰 | arry老師的博客-艾編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章