免费人妻精品一区二区三区-人人玩人人添人人澡东莞-很黄很色很污18禁免费-视频一区二区三区四区五区-久久99精品久久久久久9-国产97色在线 | 国-伊人七七-已婚少妇美妙人妻系列-欧美俄罗斯乱妇-奇米在线-国产精品99久久精品爆乳-欧美精品乱码视频一二专区-又大又爽又黄无码a片-粉嫩绯色av一区二区在线观看-国产爆乳无码av在线播放

什么是BFC

2020/11/4 9:50:14   閱讀:3092    發布者:3092

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

W3C對BFC的定義如下:


浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不為“visiable”的塊級盒子,都會為他們的內容創建新的BFC(塊級格式上下文
為了便于理解,我們換一種方式來重新定義BFC。一個HTML元素要創建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)

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

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

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


BFC布局規則:


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