国产精品无码久久久久久,精品久久久久久国产,波多野结衣中文字幕一区二区三区,久久久亚洲欧洲日产国码农村

什么是BFC

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

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

W3C對(duì)BFC的定義如下:


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

  1. html 根元素
  2. 浮動(dòng)元素:float 除 none 以外的值
  3. 絕對(duì)定位元素: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,但會(huì)有一些副作用:

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

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


BFC布局規(guī)則:


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