BFC介紹

BFC全稱 Block Formatting Context;
block-level box:display 屬性為 block, list-item, table 的元素,會(huì)生成 block-level box。并且參與 block fomatting context;
每個(gè)渲染區(qū)域用formatting context表示,它決定了其子元素將如何定位,以及和其他元素的關(guān)系和相互作用;
總結(jié)就是:BFC是一個(gè)獨(dú)立的渲染區(qū)域,只有Block-level box參與, 它規(guī)定了內(nèi)部的Block-level Box如何布局,并且與這個(gè)區(qū)域外部毫不相干。

哪些元素生成 BFC

1.根元素;
2.float屬性不為none;
3.position為absolute或fixed;
4.display為inline-block, flex, 或者inline-flex;
5.overflow不為visible;

BFC的特性

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

BFC的作用

1.防止margin 重疊
2.清除浮動(dòng)

示例:

1.防止margin 重疊

BFC003.png

查看下兩個(gè)div元素的margin是否重疊


BFC001.png
BFC002.png

通過(guò)查看,我們發(fā)現(xiàn)兩個(gè)塊級(jí)元素的之間的margin所形成的距離并不是200px,而是100px,兩個(gè)div 元素的margin發(fā)生了重疊;

我們可以在div元素外面包裹一層容器,并觸發(fā)該容器生成一個(gè)BFC。那么兩個(gè)div便不屬于同一個(gè)BFC,就不會(huì)發(fā)生margin重疊了

BFC004.png

BFC005.png
BFC006.png

通過(guò)查看,兩個(gè)div元素之前的margin距離為200px,沒(méi)有發(fā)生重疊;

2.清除浮動(dòng)

先寫一個(gè)浮動(dòng):


BFC007.png

因?yàn)楦冈馗兄坏礁?dòng)元素的存在,并且父元素沒(méi)有設(shè)置高度,導(dǎo)致浮動(dòng)元素?zé)o法撐起來(lái)父元素,所以父元素的高度為0;
我們通過(guò)將父元素觸發(fā)為一個(gè)BFC,來(lái)清除浮動(dòng),因?yàn)橛?jì)算BFC的高度時(shí),浮動(dòng)元素也參與計(jì)算;

BFC008.png

如圖所示,父元素被撐開(kāi),高度為div元素的高度100px;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 加標(biāo)簽,在現(xiàn)實(shí)的學(xué)習(xí)生活中就常常有用到,用便利貼,寫著知識(shí)點(diǎn)的分類,然后貼到相應(yīng)的地方,下次找知識(shí)的時(shí)候,就可以直...
    HinataWail閱讀 694評(píng)論 0 0
  • 人與人之間是需要尊重的,更何況是情侶之間了,只要兩人感情有問(wèn)題絕對(duì)不是一方的責(zé)任,兩方都會(huì)有問(wèn)題,日子是兩人過(guò)的,...
    小傻傻94閱讀 253評(píng)論 0 0
  • 20171013 【幸福三朵玫瑰】 昨日采摘 3 朵玫瑰 1、擁抱老公? 2、好好跟父母說(shuō)話? 3、好好跟孩子說(shuō)話...
    徐則蘭閱讀 128評(píng)論 0 1

友情鏈接更多精彩內(nèi)容