CSS中的BFC

什么是BFC

BFC( Block formatting context ): 塊級格式化上下文,具有 BFC 特性的元素可以看作是隔離的獨立容器,容器里面的元素不會在布局上影響到外面的元素,并且 BFC 具有普通容器所沒有的一些特性。

BFC的特性

  • 屬于同一個BFC的兩個相鄰容器的上下margin會重疊
  • 計算BFC高度時浮動元素也參與計算
  • BFC的區(qū)域不會與浮動元素發(fā)生重疊
  • BFC內的容器在垂直方向依次排列
  • 元素的margin-left與其包含塊的border-left相接觸
  • BFC是獨立容器,容器內部元素不會影響容器外部元素

如何創(chuàng)建 BFC

  • 浮動元素,float值不為none
  • 絕對定位元素,position值為absolute、fixed
  • display值不為默認,
  • overflow值不為visible,為 auto、scroll、hidden

BFC 使用場景

  • 解決邊距重疊問題
 <div class="box1"></div>
 <div class="box2"></div>
<style>
 .box1 {
   width: 100px;
   height: 100px;
   margin: 10px 0;
 }
 .box2 {
   width: 100px;
   height: 100px;
   margin: 20px 0;
 }
</style>

上面box1和box2之間間距為20px

垂直方向的兩個相鄰元素的外邊距會發(fā)生疊加,疊加后的外邊距為兩者中外邊距的最大值

可以利用BFC,使box1和box2的外邊距都保存

<div class="box1"></div>
<div class="wrap">
    <div class="box2"></div>
</div>
<style>
  .wrap {
    overflow: hidden;
  }
</style>

此時box1和box2之間間距為30px

  • 清除浮動 overflow:hidden;
<div class="parent">
  <div class="text">內容區(qū)</div>
  <div class="child">浮動元素</div>
</div>
.parent {
  border: solid 1px red;
}
.child {
  float: left;
  width: 100px;
  height: 100px;
  background: red;
}
浮動元素.png

浮動元素不占文檔流,無法撐開父元素高度

可以利用BFC,清除浮動帶來的影響

.parent {
  border: solid 1px red;
  overflow: hidden;
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 引言: 這篇文章是我對BFC的理解及總結,帶你揭開BFC的面紗。你將會知道BFC是什么,形成BFC的條件,BFC的...
    Zal哥哥閱讀 467評論 0 0
  • 本文轉載自https://www.cnblogs.com/chen-cong/p/7862832.html 一、何...
    西瓜魚仔閱讀 377評論 0 5
  • BFC是什么? BFC(Block Formatting Context)直譯為“塊級格式化范圍 ”。 是 W3C...
    若邪Y閱讀 2,189評論 0 2
  • BFC定義 BFC(Block Formatting Context)格式化上下文,是Web頁面中盒模型布局的CS...
    beatzcs閱讀 350評論 0 0
  • 一、BFC是什么? 它是 Block Formatting Context (塊級格式化上下文) 的簡稱,接下來通...
    07120665a058閱讀 3,917評論 15 40

友情鏈接更多精彩內容