我對BFC的理解~

前端7班+余愿

鑒于我對BFC的理解難度,我覺得有必要把我的理解過程記錄并保存下來,以后忘了可以隨時來翻翻,也可以為跟我一樣的前端小白做一個小的參考(雖然我也并沒有完全理解透徹。。。)。
首先,什么是BFC。w3c上面的解釋是一串英文,我們直接看翻譯過來的。。。翻譯過來是:浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不為“visiable”的塊級盒子,都會為他們的內(nèi)容創(chuàng)建新的塊級格式化上下文。
在一個塊級格式化上下文里,盒子從包含塊的頂端開始垂直地一個接一個地排列,兩個盒子之間的垂直的間隙是由他們的margin 值所決定的。兩個相鄰的塊級盒子的垂直外邊距會發(fā)生疊加。
在塊級格式化上下文中,每一個盒子的左外邊緣(margin-left)會觸碰到容器的左邊緣(border-left)(對于從右到左的格式來說,則觸碰到右邊緣),即使存在浮動也是如此,除非這個盒子創(chuàng)建一個新的塊級格式化上下文。
這種概念類的解釋文字,肯定不好理解,因為我自己就不理解。查資料看別人的理解用通俗易懂的話來講就是3點,首先得明白BFC有什么作用,就是我們想要用BFC實現(xiàn)什么樣的效果。
BFC的作用:
1,用來清除浮動。
2,用來布局
3,解決margin疊加問題。
明白了BFC有什么作用之后,再來想如何生成BFC。滿足以下任何一點,都可以生成bfc:
1,float 除了none以外的值
2,overflow 除了visible 以外的值(hidden,auto,scroll )
3,display (table-cell,table-caption,inline-block, flex, inline-flex)
4,position值為(absolute,fixed)
5,fieldset元素(這是一個html標簽,它將表單內(nèi)容的一部分打包,生成一組相關(guān)表單的字段。)
知道這些之后,也需要知道以下BFC的特性:
1,內(nèi)部的Box會在垂直方向,從頂部開始一個接一個地放置。
2,Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生疊加
3,每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
4,BFC的區(qū)域不會與float box疊加。
5,BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素,反之亦然。
6,計算BFC的高度時,浮動元素也參與計算。
基本上了解這么多,就能簡單的用一用BFC了,如果還要深入了解,可以多翻翻資料多多練習(xí)~

文章參考鏈接:http://dyygtfx.com/3942.html

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 14,095評論 1 92
  • 對css有了解的朋友肯定都知道盒式模型這個概念,對一個元素設(shè)置css,首先需要知道這個元素是block還是inli...
    wmsj100閱讀 20,371評論 1 50
  • 先前在學(xué)習(xí)CSS float時,有同學(xué)提到了BFC這個詞,作為求知好問的好學(xué)生,哪里不懂查哪里,那么今天就來研究一...
    這名字真不對閱讀 6,684評論 3 19
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,070評論 0 2
  • 一、BFC是什么? 它是 Block Formatting Context (塊級格式化上下文) 的簡稱,接下來通...
    07120665a058閱讀 3,917評論 15 40

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