[css系列] BFC晾浴、IFC负乡、GFC和FFC

?What's FC?

一定是不是 KFC脊凰,F(xiàn)C 的全稱是:Formatting Contexts抖棘,是 W3C CSS2.1 規(guī)范中的一個(gè)概念。它是頁(yè)面中的一塊渲染區(qū)域狸涌,有一套渲染規(guī)則切省,決定了子元素將如何定位,以及和其他元素的關(guān)系和相互作用帕胆。

BFC

BFC(Block Formatting Contexts)直譯為"塊級(jí)格式化上下文"朝捆。Block Formatting Contexts就是頁(yè)面上的一個(gè)隔離的渲染區(qū)域,容器里面的子元素不會(huì)在布局上影響到外面的元素懒豹,反之也是如此芙盘。如何產(chǎn)生 BFC驯用?

float 的值不為 none。

overflow 的值不為 visible儒老。

position 的值不為 relative 和 static蝴乔。

display 的值為 table-cell, table-caption, inline-block 中的任何一個(gè)。

那 BFC 一般有什么用呢驮樊?比如常見的多欄布局薇正,結(jié)合塊級(jí)別元素浮動(dòng),里面的元素則是在一個(gè)相對(duì)隔離的環(huán)境里運(yùn)行囚衔。

IFC

IFC(Inline Formatting Contexts)直譯為"內(nèi)聯(lián)格式化上下文"挖腰,IFC 的 line box(線框)高度由其包含行內(nèi)元素中最高的實(shí)際高度計(jì)算而來(lái)(不受到豎直方向的 padding/margin 影響)

IFC 中的 line box 一般左右都貼緊整個(gè) IFC,但是會(huì)因?yàn)?float 元素而擾亂佳魔。float 元素會(huì)位于 IFC 與與 line box 之間曙聂,使得 line box 寬度縮短晦炊。 同個(gè) ifc 下的多個(gè) line box 高度會(huì)不同鞠鲜。 IFC 中時(shí)不可能有塊級(jí)元素的,當(dāng)插入塊級(jí)元素時(shí)(如 p 中插入 div)會(huì)產(chǎn)生兩個(gè)匿名塊與 div 分隔開断国,即產(chǎn)生兩個(gè) IFC贤姆,每個(gè) IFC 對(duì)外表現(xiàn)為塊級(jí)元素,與 div 垂直排列稳衬。

那么 IFC 一般有什么用呢霞捡?

水平居中:當(dāng)一個(gè)塊要在環(huán)境中水平居中時(shí),設(shè)置其為inline-block則會(huì)在外層產(chǎn)生 IFC薄疚,通過(guò) text-align 則可以使其水平居中碧信。

垂直居中:創(chuàng)建一個(gè) IFC,用其中一個(gè)元素?fù)伍_父元素的高度街夭,然后設(shè)置其 vertical-align:middle砰碴,其他行內(nèi)元素則可以在此父元素下垂直居中。

GFC

GFC(GridLayout Formatting Contexts)直譯為"網(wǎng)格布局格式化上下文"板丽,當(dāng)為一個(gè)元素設(shè)置 display 值為 grid 的時(shí)候呈枉,此元素將會(huì)獲得一個(gè)獨(dú)立的渲染區(qū)域,我們可以通過(guò)在網(wǎng)格容器(grid container)上定義網(wǎng)格定義行(grid definition rows)和網(wǎng)格定義列(grid definition columns)屬性各在網(wǎng)格項(xiàng)目(grid item)上定義網(wǎng)格行(grid row)和網(wǎng)格列(grid columns)為每一個(gè)網(wǎng)格項(xiàng)目(grid item)定義位置和空間埃碱。

那么 GFC 有什么用呢猖辫,和table又有什么區(qū)別呢?首先同樣是一個(gè)二維的表格砚殿,但GridLayout 會(huì)有更加豐富的屬性來(lái)控制行列啃憎,控制對(duì)齊以及更為精細(xì)的渲染語(yǔ)義和控制。

FFC

FFC(Flex Formatting Contexts)直譯為"自適應(yīng)格式化上下文"似炎,display 值為 flex 或者inline-flex 的元素將會(huì)生成自適應(yīng)容器(flex container)荧飞,可惜這個(gè)牛逼的屬性只有谷歌和火狐支持凡人,不過(guò)在移動(dòng)端也足夠了,至少 safari 和 chrome 還是OK的叹阔,畢竟這倆在移動(dòng)端才是王道挠轴。

Flex Box 由伸縮容器和伸縮項(xiàng)目組成。通過(guò)設(shè)置元素的 display 屬性為 flex 或 inline-flex 可以得到一個(gè)伸縮容器耳幢。設(shè)置為 flex 的容器被渲染為一個(gè)塊級(jí)元素岸晦,而設(shè)置為 inline-flex 的容器則渲染為一個(gè)行內(nèi)元素。

伸縮容器中的每一個(gè)子元素都是一個(gè)伸縮項(xiàng)目睛藻。伸縮項(xiàng)目可以是任意數(shù)量的启上。伸縮容器外和伸縮項(xiàng)目?jī)?nèi)的一切元素都不受影響。簡(jiǎn)單地說(shuō)店印,F(xiàn)lexbox 定義了伸縮容器內(nèi)伸縮項(xiàng)目該如何布局冈在。

原文地址:www.cnblogs.com/dingyufenglian/p/4845477.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市按摘,隨后出現(xiàn)的幾起案子包券,更是在濱河造成了極大的恐慌,老刑警劉巖炫贤,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溅固,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡兰珍,警方通過(guò)查閱死者的電腦和手機(jī)侍郭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掠河,“玉大人亮元,你說(shuō)我怎么就攤上這事∵肽。” “怎么了爆捞?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)跃闹。 經(jīng)常有香客問(wèn)我嵌削,道長(zhǎng),這世上最難降的妖魔是什么望艺? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任苛秕,我火速辦了婚禮,結(jié)果婚禮上找默,老公的妹妹穿的比我還像新娘艇劫。我一直安慰自己,他們只是感情好惩激,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布店煞。 她就那樣靜靜地躺著蟹演,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顷蟀。 梳的紋絲不亂的頭發(fā)上酒请,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音鸣个,去河邊找鬼羞反。 笑死,一個(gè)胖子當(dāng)著我的面吹牛囤萤,可吹牛的內(nèi)容都是我干的昼窗。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼涛舍,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼澄惊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起富雅,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掸驱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吹榴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亭敢,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滚婉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年图筹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片让腹。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡远剩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骇窍,到底是詐尸還是另有隱情瓜晤,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布腹纳,位于F島的核電站痢掠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嘲恍。R本人自食惡果不足惜足画,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望佃牛。 院中可真熱鬧淹辞,春花似錦、人聲如沸俘侠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至央星,卻和暖如春霞怀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莉给。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工里烦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人禁谦。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓胁黑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親州泊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丧蘸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 問(wèn)答題47 /72 常見瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,748評(píng)論 1 92
  • BFC 已經(jīng)是一個(gè)耳聽熟聞的詞語(yǔ)了弟孟,網(wǎng)上有許多關(guān)于 BFC 的文章,介紹了如何觸發(fā) BFC 以及 BFC 的一些用...
    一木_qintb閱讀 1,535評(píng)論 0 2
  • CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC陈症。 FC 全稱是:Formatting Conte...
    choukin閱讀 381評(píng)論 0 2
  • 原文網(wǎng)址:http://www.cnblogs.com/dingyufenglian/p/4845477.html...
    chen1zee閱讀 9,106評(píng)論 0 9
  • 農(nóng)村人這樣的包子吃的人也不多了。如果是二十年前的小時(shí)候震糖,那還很多录肯。也許城里人也在吃,吃一種回憶吧吊说!記得小時(shí)候...
    山楂紅了閱讀 379評(píng)論 0 0