CSS盒模型和BFC

盒模型

盒模型分為IE盒模型和W3C標(biāo)準(zhǔn)盒模型咬摇。

IE盒模型

IE盒模型也稱border-box伐蒂。
屬性width,height包含content肛鹏,border和padding逸邦。
width = 內(nèi)容的寬度
height = 內(nèi)容的高度

W3C標(biāo)準(zhǔn)盒模型

W3C標(biāo)準(zhǔn)盒模型也稱content-box。
屬性width在扰,height只包含content缕减,不包含border和padding
width = border + padding + 內(nèi)容的寬度
height = border + padding + 內(nèi)容的高度

在ie8+瀏覽器中使用哪個盒模型可以由box-sizing(CSS新增的屬性)控制,默認(rèn)值為content-box芒珠,即標(biāo)準(zhǔn)盒模型桥狡;如果將box-sizing設(shè)為border-box則用的是IE盒模型。若不聲明DOCTYPE類型皱卓,IE瀏覽器會將盒子模型解釋為IE盒子模型裹芝,F(xiàn)ireFox等會將其解釋為W3C盒子模型;娜汁。在當(dāng)前W3C標(biāo)準(zhǔn)中盒模型是可以通過box-sizing自由的進(jìn)行切換的嫂易。

1,BFC是什么存炮?

Block fomatting context = block-level box + Formatting Context

Box:
1.1block-level box即塊級元素

display屬性為block, list-item, table的元素炬搭,會生成block-level box;并且參與 block fomatting context穆桂;

1.2inline-level box即行內(nèi)元素

display 屬性為 inline, inline-block, inline-table的元素宫盔,會生成inline-level box。并且參與 inline formatting context享完;

Formatting context

Formatting context是W3C CSS2.1規(guī)范中的一個概念灼芭。它是頁面中的一塊渲染區(qū)域,并且有一套渲染規(guī)則般又,它決定了其子元素將如何定位彼绷,以及和其他元素的關(guān)系巍佑、相互作用。最常見的 Formatting context 有 Block fomatting context (簡稱BFC)和 Inline formatting context(簡稱IFC)寄悯。

BFC 定義

BFC(Block formatting context)直譯為"塊級格式化上下文"萤衰。它是一個獨立的渲染區(qū)域,只有Block-level box參與猜旬, 它規(guī)定了內(nèi)部的Block-level Box如何布局脆栋,并且與這個區(qū)域外部毫不相干。

2洒擦,BFC的生成

滿足下列CSS聲明之一的元素便會生成BFC椿争。

  • 根元素
  • float的值不為none
  • overflow的值不為visible
  • display的值為inline-block、table-cell熟嫩、table-caption
    display:table也認(rèn)為可以生成BFC秦踪,其實這里的主要原因在于Table會默認(rèn)生成一個匿名的table-cell,正是這個匿名的table-cell生成了BFC
  • position的值為absolute或fixed

3掸茅,BFC的約束規(guī)則

  • 內(nèi)部的Box會在垂直方向上一個接一個的放置
  • 垂直方向上的距離由margin決定椅邓。(完整的說法是:屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊(塌陷),與方向無關(guān)倦蚪。)
  • 每個元素的左外邊距與包含塊的左邊界相接觸(從左向右)希坚,即使浮動元素也是如此边苹。(這說明BFC中子元素不會超出他的包含塊陵且,而position為absolute的元素可以超出他的包含塊邊界)
  • BFC的區(qū)域不會與float的元素區(qū)域重疊
  • 計算BFC的高度時,浮動子元素也參與計算
  • BFC就是頁面上的一個隔離的獨立容器个束,容器里面的子元素不會影響到外面元素慕购,反之亦然

4,BFC在布局中的應(yīng)用

4.1防止margin重疊(塌陷)
  • 兩個相鄰Box垂直方向margin重疊
  • 相鄰Box水平方向margin重疊
  • 嵌套元素的margin重疊
4.2清除內(nèi)部浮動
4.3 自適應(yīng)多欄布局的
  • 自適應(yīng)兩欄布局
  • 自適應(yīng)三欄布局

BFC原理剖析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茬底,一起剝皮案震驚了整個濱河市沪悲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阱表,老刑警劉巖殿如,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異最爬,居然都是意外死亡涉馁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門爱致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烤送,“玉大人,你說我怎么就攤上這事糠悯“锛幔” “怎么了妻往?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長试和。 經(jīng)常有香客問我讯泣,道長,這世上最難降的妖魔是什么阅悍? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任判帮,我火速辦了婚禮,結(jié)果婚禮上溉箕,老公的妹妹穿的比我還像新娘晦墙。我一直安慰自己,他們只是感情好肴茄,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布晌畅。 她就那樣靜靜地躺著,像睡著了一般寡痰。 火紅的嫁衣襯著肌膚如雪抗楔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天拦坠,我揣著相機(jī)與錄音连躏,去河邊找鬼。 笑死贞滨,一個胖子當(dāng)著我的面吹牛入热,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播晓铆,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼勺良,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骄噪?” 一聲冷哼從身側(cè)響起尚困,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎链蕊,沒想到半個月后事甜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡滔韵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年逻谦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奏属。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡跨跨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情勇婴,我是刑警寧澤忱嘹,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站耕渴,受9級特大地震影響拘悦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜橱脸,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一础米、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧添诉,春花似錦屁桑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至须眷,卻和暖如春竖瘾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背花颗。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工捕传, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人扩劝。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓庸论,卻偏偏與公主長得像,于是被迫代替她去往敵國和親今野。 傳聞我的和親對象是個殘疾皇子葡公,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案罐农? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,762評論 1 92
  • 先前在學(xué)習(xí)CSS float時条霜,有同學(xué)提到了BFC這個詞,作為求知好問的好學(xué)生涵亏,哪里不懂查哪里宰睡,那么今天就來研究一...
    這名字真不對閱讀 6,566評論 3 19
  • (注1:如果有問題歡迎留言探討,一起學(xué)習(xí)气筋!轉(zhuǎn)載請注明出處拆内,喜歡可以點個贊哦!)(注2:更多內(nèi)容請查看我的目錄宠默。) ...
    love丁酥酥閱讀 1,605評論 0 0
  • 什么是BFC BFC全稱是Block Formatting Context麸恍,即塊格式化上下文。它是CSS2.1規(guī)范...
    陌客百里閱讀 535評論 3 4
  • 編集部の意向にそって、高校生にも読めるように_できれば中學(xué)生にも読めるように_これからお話をすすめていくつもりです...
    吾乃生菜狂魔閱讀 251評論 0 0