国产色在线视频-国产色综合一区二区三区-国产身材极品喷水 在线播放-国产深夜福利视频观看-国产深夜福利视频在线-国产深夜福利视频在线播放

什么是BFC

2020/11/4 9:50:14   閱讀:2675    發(fā)布者:2675

在一個Web頁面的CSS渲染中,塊級格式化上下文 (Block Fromatting Context)是按照塊級盒子布局的。

W3C對BFC的定義如下:


浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不為“visiable”的塊級盒子,都會為他們的內(nèi)容創(chuàng)建新的BFC(塊級格式上下文。
為了便于理解,我們換一種方式來重新定義BFC。一個HTML元素要創(chuàng)建BFC,則滿足下列的任意一個或多個條件即可:

  1. html 根元素
  2. 浮動元素:float 除 none 以外的值
  3. 絕對定位元素:position的值不是static或者relative。 而是position (absolute、fixed)
  4. display 為 inline-block、table-cell、flex、table-caption或者inline-flex
  5. overflow 除了 visible 以外的值 (hidden、auto、scroll)

雖然添加上述的任意一條都能創(chuàng)建BFC,但會有一些副作用:

  • display: table 可能引發(fā)響應性問題
  • overflow: scroll 可能產(chǎn)生多余的滾動條
  • float: left 將把元素移至左側(cè),并被其他元素環(huán)繞
  • overflow: hidden 將裁切溢出元素

BFC是一個獨立的布局環(huán)境,其中的元素布局是不受外界的影響,并且在一個BFC中,塊盒與行盒(行盒由一行中所有的內(nèi)聯(lián)元素所組成)都會垂直的沿著其父元素的邊框排列。


BFC布局規(guī)則:


  1. 內(nèi)部的Box會在垂直方向,一個接一個地放置。
  2. Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊
  3. 每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。BFC的區(qū)域不會與float box重疊。
  4. BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素。反之也如此。
  5. 計算BFC的高度時,浮動元素也參與計算