BFC

Ba la la la ~ 讀者朋友泵殴,你們好啊涮帘,又到了冷鋒時間,話不多說笑诅,發(fā)車调缨!


一疮鲫、BFC是什么?

BFC(Block Formatting Context)直譯為“塊級格式化范圍”弦叶。是W3C CSS 2.1規(guī)范中的一個概念俊犯,它決定了元素如何對其內容進行定位,以及與其他元素的關系和相互作用伤哺。當涉及到可視化布局的時候燕侠,Block Formatting Context提供了一個環(huán)境,HTML元素在這個環(huán)境中按照一定規(guī)則進行布局立莉。一個環(huán)境中的元素不會影響到其它環(huán)境中的布局绢彤。比如浮動元素會形成BFC,浮動元素內部子元素的主要受該浮動元素影響蜓耻,兩個浮動元素之間是互不影響的茫舶。這里有點類似一個BFC就是一個獨立的行政單位的意思。也可以說BFC就是一個作用范圍刹淌∪氖希可以把它理解成是一個獨立的容器,并且這個容器的里box的布局有勾,與這個容器外的毫不相干疹启。

另一個通俗點的解釋是:在普通流中的Box(框)屬于一種formatting context(格式化上下文),類型可以是block柠衅,或者是inline皮仁,但不能同時屬于這兩者。并且菲宴,Block boxes(塊框)在block formatting context(塊格式化上下文)里格式化贷祈,Inline boxes(塊內框)則在inline formatting context(行內格式化上下文)里格式化。任何被渲染的元素都屬于一個box喝峦,并且不是
block势誊,就是inline。即使是未被任何元素包裹的文本谣蠢,根據不同的情況粟耻,也會屬于匿名的block boxes或者inline boxes。所以上面的描述眉踱,即是把所有的元素劃分到對應的formatting context里挤忙。

二、其一般表現規(guī)則谈喳,我整理了以下這幾個情況:

1册烈、在創(chuàng)建了Block Formatting Context的元素中,其子元素按文檔流一個接一個地放置婿禽。垂直方向上他們的起點是一個包含塊的頂部赏僧,兩個相鄰的元素之間的垂直距離取決于 ‘margin’ 特性大猛。

根據CSS 2.1 8.3.1 Collapsing margins 第一條,兩個相鄰的普通流中的塊框在垂直位置的空白邊會發(fā)生折疊現象淀零。也就是處于同一個BFC中的兩個垂直窗口的margin會重疊挽绩。

根據CSS 2.1 8.3.1 Collapsing margins 第三條,生成block formatting context的元素不會和在流中的子元素發(fā)生空白邊折疊驾中。所以解決這種問題的辦法是要為兩個容器添加具有BFC的包裹容器唉堪。


2、在Block Formatting Context
中哀卫,每一個元素左外邊與包含塊的左邊相接觸(對于從右到左的格式化巨坊,右外邊接觸右邊)撬槽, 即使存在浮動也是如此(盡管一個元素的內容區(qū)域會由于浮動而壓縮)此改,除非這個元素也創(chuàng)建了一個新的
Block Formatting Context


3侄柔、Block Formatting Context就是頁面上的一個隔離的獨立容器共啃,容器面的子元素不會在布局上影響到外面的元素,反之也是如此暂题。


4移剪、根據CSS 2.1 9.5 Floats中的描述,創(chuàng)建了Block Formatting Context的元素不能與浮動元素重疊薪者。

表格的border-box纵苛、塊級的替換元素、或是在普通流中創(chuàng)建了新的block formatting context(如元素的'overflow'特性不為'visible'時)的元素不可以與位于相同的block formatting context中的浮動元素相重疊言津。


5 攻人、當容器有足夠的剩余空間容納BFC的寬度時,所有瀏覽器都會將BFC放置在浮動元素所在行的剩余空間內悬槽。


6怀吻、 在IE6 IE7 IE8 Chrome Opera中,當BFC的寬度介于"容器剩余寬度"與"容器寬度"之間時初婆,BFC會顯示在浮動元素的下一行蓬坡;在Safari中,BFC則仍然保持顯示在浮動元素所在行磅叛,并且BFC溢出容器屑咳;在Firefox中,當容器本身也創(chuàng)建了BFC或者容器的'padding-top'弊琴、'border-top-width'這些特性不都為0時表現與IE8(S)兆龙、Chrome類似,否則表現與Safari類似访雪。經驗證详瑞,最新版本的瀏覽中只有firefox會在同一行顯示掂林,其它瀏覽器均換行。


7坝橡、 在IE6 IE7 IE8 Opera中泻帮,當BFC的寬度大于"容器寬度"時,BFC會顯示在浮動元素的下一行计寇;在Chrome Safari中锣杂,BFC則仍然保持顯示在浮動元素所在行,并且BFC溢出容器番宁;在Firefox中元莫,當容器本身也創(chuàng)建了BFC或者容器的'padding- top'、'border-top-width'這些特性不都為0時表現與IE8(S)類似蝶押,否則表現與Chrome類似踱蠢。經驗證,最新版本的瀏覽中只有
firefox會在同一行顯示棋电,其它瀏覽器均換行茎截。


8、根據CSS2.1規(guī)范第
10.6.7部分的高度計算規(guī)則赶盔,在計算生成了
block formatting context的元素的高度時企锌,其浮動子元素應該參與計算。


以上為個人意見于未,如有雷同撕攒,純屬巧合,歡迎大家多提意見烘浦!Bey 了 個 Bey ~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末抖坪,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子谎倔,更是在濱河造成了極大的恐慌柳击,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件片习,死亡現場離奇詭異捌肴,居然都是意外死亡,警方通過查閱死者的電腦和手機藕咏,發(fā)現死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門状知,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人孽查,你說我怎么就攤上這事饥悴。” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵西设,是天一觀的道長瓣铣。 經常有香客問我,道長贷揽,這世上最難降的妖魔是什么棠笑? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮禽绪,結果婚禮上蓖救,老公的妹妹穿的比我還像新娘。我一直安慰自己印屁,他們只是感情好循捺,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著雄人,像睡著了一般从橘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上柠衍,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天洋满,我揣著相機與錄音,去河邊找鬼珍坊。 笑死,一個胖子當著我的面吹牛正罢,可吹牛的內容都是我干的阵漏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼翻具,長吁一口氣:“原來是場噩夢啊……” “哼履怯!你這毒婦竟也來了?” 一聲冷哼從身側響起裆泳,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤叹洲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后工禾,有當地人在樹林里發(fā)現了一具尸體运提,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年闻葵,在試婚紗的時候發(fā)現自己被綠了民泵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡槽畔,死狀恐怖栈妆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤鳞尔,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布嬉橙,位于F島的核電站,受9級特大地震影響寥假,放射性物質發(fā)生泄漏憎夷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一昧旨、第九天 我趴在偏房一處隱蔽的房頂上張望拾给。 院中可真熱鬧,春花似錦兔沃、人聲如沸蒋得。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽额衙。三九已至,卻和暖如春怕吴,著一層夾襖步出監(jiān)牢的瞬間窍侧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工转绷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留伟件,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓议经,卻偏偏與公主長得像斧账,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子煞肾,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案咧织? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,737評論 1 92
  • 先前在學習CSS float時,有同學提到了BFC這個詞籍救,作為求知好問的好學生习绢,哪里不懂查哪里,那么今天就來研究一...
    這名字真不對閱讀 6,548評論 3 19
  • 什么是BFC BFC全稱是Block Formatting Context蝙昙,即塊格式化上下文闪萄。它是CSS2.1規(guī)范...
    陌客百里閱讀 531評論 3 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 932評論 0 2
  • 在那段最美好的時光里耸黑,偶爾萌發(fā)的青春荷爾蒙桃煎,總能讓人心跳不已。 可是大刊,父母老師告訴你为迈,這是不對的三椿。 于是壓抑著原本...
    之和與西閱讀 466評論 0 0