BFC原理解析

BFC

BFC(Block Formatting Contexts),塊級格式化上下文

盒模型

CSS?盒模型描述了通過?文檔樹中的元素?以及相應(yīng)的?視覺格式化模型?所生成的矩形盒子。簡單來說,盒模型定義了一個(gè)?矩形盒子早抠,當(dāng)我們需要對文檔進(jìn)行布局時(shí)到踏,瀏覽器的渲染引擎就會根據(jù)盒模型,將所有元素表示為一個(gè)個(gè)矩形的盒子辐怕,盒子的外觀由?CSS?決定。

一個(gè)標(biāo)準(zhǔn)的盒子由四個(gè)部分組成从绘,由內(nèi)向外分別為:內(nèi)容寄疏,內(nèi)邊距,邊框僵井,外邊距:

標(biāo)準(zhǔn)的盒模型中陕截,內(nèi)容區(qū)域的大小可以明確地通過width,min-width批什,max-width农曲,height,min-height,max-height控制乳规,也就是說形葬,通過CSS設(shè)置的元素寬高只是包含內(nèi)容區(qū)域。你可能聽說過怪異盒模型暮的,這種盒模型最早在IE瀏覽器中出現(xiàn)笙以,也叫IE盒模型,box-sizing屬性值為border-box時(shí)冻辩,元素會呈現(xiàn)怪異盒模型猖腕,此時(shí),元素的寬高包含了內(nèi)容恨闪,內(nèi)邊距和邊框倘感。

視覺格式化模型

CSS視覺格式化模型描述了盒子是怎樣生成的,簡單來說咙咽,它定義了盒子生成的計(jì)算規(guī)則老玛,通過規(guī)則將文檔元素轉(zhuǎn)換為一個(gè)個(gè)盒子。

每個(gè)盒子的布局由尺寸犁珠,類型逻炊,定位互亮,盒子的子元素或兄弟元素犁享,視口的尺寸和位置等因素決定。

視覺格式化模型的計(jì)算豹休,取決于一個(gè)矩形的邊界炊昆,這個(gè)邊界,就是包含塊( containing block ):

<table>

?????<tr>

????????<td></td>

? ? ? </tr>

</table>

上述代碼中威根,table和tr都是包含塊凤巨,table是tr的包含塊,同時(shí)tr又是td的包含塊洛搀。

盒子不受包含塊的限制敢茁,當(dāng)盒子的布局跑到包含塊的外面時(shí),就是我們說的溢出(overflow)留美。

視覺格式化模型定義了盒(Box)的生成彰檬,其中的盒主要包括了塊級盒,行內(nèi)盒和匿名盒。

塊級元素

CSS?屬性值?display?為?block谎砾,list-item逢倍,table?的元素。

塊級盒

塊級盒具有以下特性:

CSS屬性值display為block景图,list-item较雕,table時(shí),它就是塊級元素

視覺上挚币,塊級盒呈現(xiàn)為豎直排列的塊

每個(gè)塊級盒都會參與BFC的創(chuàng)建

每個(gè)塊級元素都會至少生成一個(gè)塊級盒亮蒋,稱為主塊級盒扣典;一些元素可能會生成額外的塊級盒,比如<li>慎玖,用來存放項(xiàng)目符號

行內(nèi)級元素

CSS?屬性值?display?為?inline激捏,inline-block,inline-table?的元素凄吏。

行內(nèi)盒

行內(nèi)盒具有以下特性:

CSS屬性值display為inline远舅,inline-block,inline-table時(shí)痕钢,它就是行內(nèi)級元素

視覺上图柏,行內(nèi)盒與其他行內(nèi)級元素排列為多行

所有的可替換元素(display值為inline,如<img>任连,<iframe>蚤吹,<video>,<embed>等)生成的盒都是行內(nèi)盒随抠,它們會參與IFC(行內(nèi)格式化上下文)的創(chuàng)建

所有的非可替換行內(nèi)元素(display值為inline-block或inline-table)生成的盒稱為原子行內(nèi)級盒裁着,不參與IFC創(chuàng)建。

匿名盒

匿名盒指不能被?CSS?選擇器選中的盒子拱她,比如:

<div>

? 匿名盒1

? <p>塊盒</p>

? 匿名盒2

</div>

上述代碼片段中二驰,div?元素和?p?元素都會生成一個(gè)塊級盒,p?元素的前后會生成兩個(gè)匿名盒秉沼。

匿名盒所有可繼承的?CSS?屬性值都為?inherit桶雀,所有不可繼承的?CSS?屬性值都為?initial。

定位方案

CSS頁面布局技術(shù)允許我們拾取網(wǎng)頁中的元素唬复,并且控制它們相對正常布局流(普通流)矗积、周邊元素、父容器或者主視口/窗口的位置敞咧。技術(shù)布局從宏觀上來說是受定位方案影響棘捣,定位方案包括普通流(Normal Flow,也叫常規(guī)流休建,正常布局流)乍恐,浮動(Float),定位技術(shù)(Position)丰包。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末禁熏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子邑彪,更是在濱河造成了極大的恐慌瞧毙,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宙彪,居然都是意外死亡矩动,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進(jìn)店門释漆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悲没,“玉大人,你說我怎么就攤上這事男图∈咀耍” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵逊笆,是天一觀的道長栈戳。 經(jīng)常有香客問我,道長难裆,這世上最難降的妖魔是什么子檀? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮乃戈,結(jié)果婚禮上褂痰,老公的妹妹穿的比我還像新娘。我一直安慰自己症虑,他們只是感情好缩歪,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侦讨,像睡著了一般驶冒。 火紅的嫁衣襯著肌膚如雪苟翻。 梳的紋絲不亂的頭發(fā)上韵卤,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機(jī)與錄音崇猫,去河邊找鬼沈条。 笑死,一個(gè)胖子當(dāng)著我的面吹牛诅炉,可吹牛的內(nèi)容都是我干的蜡歹。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼涕烧,長吁一口氣:“原來是場噩夢啊……” “哼月而!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起议纯,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤父款,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體憨攒,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡世杀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肝集。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞻坝。...
    茶點(diǎn)故事閱讀 40,926評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖杏瞻,靈堂內(nèi)的尸體忽然破棺而出所刀,到底是詐尸還是另有隱情,我是刑警寧澤捞挥,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布勉痴,位于F島的核電站,受9級特大地震影響树肃,放射性物質(zhì)發(fā)生泄漏蒸矛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一胸嘴、第九天 我趴在偏房一處隱蔽的房頂上張望雏掠。 院中可真熱鬧,春花似錦劣像、人聲如沸乡话。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绑青。三九已至,卻和暖如春屋群,著一層夾襖步出監(jiān)牢的瞬間闸婴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工芍躏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留邪乍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓对竣,卻偏偏與公主長得像庇楞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子否纬,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評論 2 361

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

  • (注1:如果有問題歡迎留言探討吕晌,一起學(xué)習(xí)!轉(zhuǎn)載請注明出處临燃,喜歡可以點(diǎn)個(gè)贊哦>Σ怠)(注2:更多內(nèi)容請查看我的目錄壁拉。) ...
    love丁酥酥閱讀 1,605評論 0 0
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁面在哪些流覽器測試過柏靶?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,223評論 0 8
  • 目錄 內(nèi)容 一. 我對標(biāo)簽屎蜓、元素痘昌、盒子的理解 相信很多人和我之前一樣,對于web的許多概念也都知道是什么意思炬转,大家...
    科研者閱讀 698評論 2 2
  • 通過學(xué)習(xí)彩慧老師快速閱讀的課程真的是受益匪淺辆苔,重新刷新了自己讀書的認(rèn)知,以前的讀書只是為了讀而讀扼劈,書讀到最后什么都...
    禪意清柔閱讀 250評論 0 0
  • 寶貝,這個(gè)可以用來形容任何人的字眼先煎,對我來講贼涩,就只有你呀!如今薯蝎,你已經(jīng)陪伴我們走過四個(gè)年頭啦,回想起以前的...
    Satan__閱讀 130評論 0 0