8、BFC

一個塊格式化上下文(block formatting context)由以下之一創(chuàng)建:

根元素或其它包含它的元素
浮動元素 (元素的 float 不是 none)
絕對定位元素 (元素具有 position 為 absolute 或 fixed)
內(nèi)聯(lián)塊 (元素具有 display: inline-block)
表格單元格 (元素具有 display: table-cell,HTML表格單元格默認屬性)
表格標題 (元素具有 display: table-caption, HTML表格標題默認屬性)
具有overflow 且值不是 visible 的塊元素,//一般用overflow:hidden
display: flow-root //超級棒的,不會在創(chuàng)建bfc的同時觸發(fā)其他副作用
column-span: all 應當總是會創(chuàng)建一個新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一個多列容器中。

功能1:爸爸管兒子
用 BFC 包住浮動元素。(這 TM 不是清除浮動,.clearfix 才是清除浮動)
http://js.jirengu.com/rozaxufetu/1/edit?html,css,output爸爸變嚴厲
或者建個墻(border)也可以得到效果的

創(chuàng)建了這個以后,兒子管的嚴嚴的,孫子由兒子管(一個塊格式化上下文包括創(chuàng)建它的元素內(nèi)部所有內(nèi)容,除了被包含于創(chuàng)建新的塊級格式化上下文的后代元素內(nèi)的元素)
然后內(nèi)部的兒子之間的豎著的margin會合并(在一個塊格式化上下文中,盒在豎直方向一個接一個地放置,從包含塊的頂部開始。兩個兄弟盒之間的豎直距離由'margin'屬性決定。同一個塊格式化上下文中的相鄰塊級盒之間的豎直margin會合并)
在一個塊格式化上下文中,每個盒的left外邊(left outer edge)挨著包含塊的left邊(對于從右向左的格式化,right邊挨著)。即使存在浮動(盡管一個盒的行盒可能會因為浮動收縮),這也成立。除非該盒建立了一個新的塊格式化上下文(這種情況下,該盒自身可能會因為浮動變窄)

功能2:兄弟之間劃清界限
用 float + div 做左右自適應布局
http://js.jirengu.com/felikenuve/1/edit?html,css,output
兄弟之間劃清界線,定位和清除浮動的樣式規(guī)則只適用于處于同一塊格式化上下文內(nèi)的元素。浮動不會影響其它塊格式化上下文中元素的布局,并且清除浮動只能清除同一塊格式化上下文中在它前面的元素的浮動。

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,104評論 1 92
  • 1. 前言 前端圈有個“?!保涸诿嬖嚂r,問個css的position屬性能刷掉一半人,其中不乏工作四五年的同學。在...
    YjWorld閱讀 4,888評論 5 15
  • 先前在學習CSS float時,有同學提到了BFC這個詞,作為求知好問的好學生,哪里不懂查哪里,那么今天就來研究一...
    這名字真不對閱讀 6,684評論 3 19
  • 前端開發(fā)者丨h(huán)ttp請求 https:www.rokub.com 前言見解有限, 如有描述不當之處, 請幫忙指出,...
    麋鹿_720a閱讀 11,271評論 11 31
  • 大家對春晚的期盼越來越不那么強烈了,因為平日里的綜藝節(jié)目太多,春晚已無法再能調(diào)動人們的興致和激情了。天天吃餃子,過...
    智時光閱讀 345評論 0 0

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