什么是BFC、IFC虱而、GFC和FFC

CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC筏餐。

FC的全稱是:Formatting Contexts,是W3C CSS2.1規(guī)范中的一個概念牡拇。它是頁面中的一塊渲染區(qū)域魁瞪,并且有一套渲染規(guī)則穆律,它決定了其子元素將如何定位,以及和其他元素的關系和相互作用导俘。

1峦耘、BFC*

BFC(Block Formatting Contexts)直譯為"塊級格式化上下文"。Block Formatting Contexts就是頁面上的一個隔離的渲染區(qū)域旅薄,容器里面的子元素不會在布局上影響到外面的元素辅髓,反之也是如此。如何產(chǎn)生BFC少梁?

float的值不為none洛口。?

overflow的值不為visible。?

position的值不為relative和static凯沪。

display的值為table-cell, table-caption, inline-block中的任何一個第焰。?

那BFC一般有什么用呢?比如常見的多欄布局妨马,結合塊級別元素浮動挺举,里面的元素則是在一個相對隔離的環(huán)境里運行。

2身笤、IFC

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

IFC中的line box一般左右都貼緊整個IFC,但是會因為float元素而擾亂液荸。float元素會位于IFC與與line box之間,使得line box寬度縮短脱篙。 同個ifc下的多個line box高度會不同娇钱。 IFC中時不可能有塊級元素的,當插入塊級元素時(如p中插入div)會產(chǎn)生兩個匿名塊與div分隔開绊困,即產(chǎn)生兩個IFC文搂,每個IFC對外表現(xiàn)為塊級元素,與div垂直排列秤朗。

那么IFC一般有什么用呢煤蹭?

水平居中:當一個塊要在環(huán)境中水平居中時,設置其為inline-block則會在外層產(chǎn)生IFC取视,通過text-align則可以使其水平居中硝皂。

垂直居中:創(chuàng)建一個IFC,用其中一個元素撐開父元素的高度作谭,然后設置其vertical-align:middle稽物,其他行內(nèi)元素則可以在此父元素下垂直居中。

3折欠、GFC(css3)

GFC(GridLayout Formatting Contexts)直譯為"網(wǎng)格布局格式化上下文"贝或,當為一個元素設置display值為grid的時候吼过,此元素將會獲得一個獨立的渲染區(qū)域,我們可以通過在網(wǎng)格容器(grid container)上定義網(wǎng)格定義行(grid definition rows)和網(wǎng)格定義列(grid definition columns)屬性各在網(wǎng)格項目(grid item)上定義網(wǎng)格行(grid row)和網(wǎng)格列(grid columns)為每一個網(wǎng)格項目(grid item)定義位置和空間咪奖。?

那么GFC有什么用呢盗忱,和table又有什么區(qū)別呢?首先同樣是一個二維的表格羊赵,但GridLayout會有更加豐富的屬性來控制行列售淡,控制對齊以及更為精細的渲染語義和控制。

4慷垮、FFC(css3)

FFC(Flex Formatting Contexts)直譯為"自適應格式化上下文"揖闸,display值為flex或者inline-flex的元素將會生成自適應容器(flex container),可惜這個牛逼的屬性只有谷歌和火狐支持料身,不過在移動端也足夠了汤纸,至少safari和chrome還是OK的,畢竟這倆在移動端才是王道芹血。

Flex Box 由伸縮容器和伸縮項目組成贮泞。通過設置元素的 display 屬性為 flex 或 inline-flex 可以得到一個伸縮容器。設置為 flex 的容器被渲染為一個塊級元素幔烛,而設置為 inline-flex 的容器則渲染為一個行內(nèi)元素啃擦。

伸縮容器中的每一個子元素都是一個伸縮項目。伸縮項目可以是任意數(shù)量的饿悬。伸縮容器外和伸縮項目內(nèi)的一切元素都不受影響令蛉。簡單地說,F(xiàn)lexbox 定義了伸縮容器內(nèi)伸縮項目該如何布局狡恬。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末珠叔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弟劲,更是在濱河造成了極大的恐慌祷安,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兔乞,死亡現(xiàn)場離奇詭異汇鞭,居然都是意外死亡,警方通過查閱死者的電腦和手機庸追,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門霍骄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锚国,你說我怎么就攤上這事腕巡。” “怎么了血筑?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵绘沉,是天一觀的道長煎楣。 經(jīng)常有香客問我,道長车伞,這世上最難降的妖魔是什么择懂? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮另玖,結果婚禮上困曙,老公的妹妹穿的比我還像新娘。我一直安慰自己谦去,他們只是感情好慷丽,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鳄哭,像睡著了一般要糊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上妆丘,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天锄俄,我揣著相機與錄音,去河邊找鬼勺拣。 笑死奶赠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的药有。 我是一名探鬼主播毅戈,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼塑猖!你這毒婦竟也來了竹祷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羊苟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后感憾,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜡励,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年阻桅,在試婚紗的時候發(fā)現(xiàn)自己被綠了凉倚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫂沉,死狀恐怖稽寒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情趟章,我是刑警寧澤杏糙,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布慎王,位于F島的核電站,受9級特大地震影響宏侍,放射性物質發(fā)生泄漏赖淤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一谅河、第九天 我趴在偏房一處隱蔽的房頂上張望咱旱。 院中可真熱鬧,春花似錦绷耍、人聲如沸吐限。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诸典。三九已至,卻和暖如春病袄,著一層夾襖步出監(jiān)牢的瞬間搂赋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工益缠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留脑奠,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓幅慌,卻偏偏與公主長得像宋欺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胰伍,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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