css3中的BFC,IFC,GFC和FFC(轉載)

作者原文網址:http://www.cnblogs.com/dingyufenglian/p/4845477.html

?

What‘s FC?

一定不是KFC,FC的全稱是:Formatting Contexts,是W3C CSS2.1規范中的一個概念。它是頁面中的一塊渲染區域,并且有一套渲染規則,它決定了其子元素將如何定位,以及和其他元素的關系和相互作用。

BFC

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

float的值不為none。

overflow的值不為visible。

position的值不為relative和static。

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

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

IFC

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

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

那么IFC一般有什么用呢?

水平居中:當一個塊要在環境中水平居中時,設置其為inline-block則會在外層產生IFC,通過text-align則可以使其水平居中。

垂直居中:創建一個IFC,用其中一個元素撐開父元素的高度,然后設置其vertical-align:middle,其他行內元素則可以在此父元素下垂直居中。

GFC

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

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

FFC

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

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

伸縮容器中的每一個子元素都是一個伸縮項目。伸縮項目可以是任意數量的。伸縮容器外和伸縮項目內的一切元素都不受影響。簡單地說,Flexbox 定義了伸縮容器內伸縮項目該如何布局。

?

轉載于:https://www.cnblogs.com/chen1zee1/p/chen1zee1_css.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257288.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257288.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257288.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

javaweb學習總結——Filter高級開發

在filter中可以得到代表用戶請求和響應的request、response對象,因此在編程中可以使用Decorator(裝飾器)模式對request、response對象進行包裝,再把包裝對象傳給目標資源,從而實現一些特殊需求。 一、Decorator設計模式 1.1、Decorator設計模…

html期末網頁設計,求網頁設計的期末作業一份 HTML的

1. 課程設計建議主題方向:電子商務類網站、門戶類網站、專題類網站。整體要求:主題鮮明、健康;風格自然、內容充實、完整;布局合理,配色和諧。(5分)2. 網站至少包括15張頁面(包括首頁)&#x…

Android(java)學習筆記10:同步中的死鎖問題以及線程通信問題

1. 同步弊端: (1)效率低 (2)如果出現了同步嵌套,就容易產生死鎖問題 死鎖問題及其代碼 : (1)是指兩個或者兩個以上的線程在執行的過程中,因爭奪資源產生的一種…

4源代碼的下載和編譯

1、Android移植主要就是Linux內核移植,而Linux內核移植主要是Linux驅動移植,為了開發和測試Linux驅動,要在Ubuntu下搭建兩套開發環境:Android應用程序開發環境和Linux內核開發環境; 2、Android源代碼包括:內…

在html中三個圖片切換,輕松搞定網頁中的圖片切換

生活中經常看到,像新浪等很多門戶網站的首頁都有滾動圖片的展示,如下圖所示:某網站首頁滾動切換圖片這樣不但可以減少文字的單一、乏味,而且可以直觀內容,更好的吸引用戶。那在我們做軟件系統時,是否也可以…

python 進程編程速成

python具有thread多線程庫,但多線程并不是真正的多線程,不能充分利用多核CPU資源。 在大多數情況下,python可以使用multiprocessing多進程庫,可以輕松完成從單進程到并發執行的轉換。 multiprocessing庫支持子進程、通信和共享數據…

requirejs(shim)處理加載非AMD規范的js庫

使用requirejs加載模塊,模塊的定義得遵守AMD規范,也即定義模塊的時候使用如下函數定義模塊: 1 define(function(){ 2 var private function(){ 3 console.log(私有方法...); 4 }; 5 return { 6 public:funct…

關于常用meta的總結

入行也半年了,無數次的想過寫博客也無數次的想過第一篇會寫什么,一直沒有落實。今天心血來潮把博客開了,那就寫點東西吧。第一篇就寫一寫看似簡單但又經常不注意到的meta標簽吧。(博主經驗尚淺,有許多理解不到位的地方…

計算機應用基礎18春在線作業1答案,東師計算機應用基礎-18春在線作業1.docx

東師計算機應用基礎18春在線作業11、A 2、C 3、C 4、C 5、B一、單選題共25題,62.5分1、國際區位、全拼雙音、五筆字型和自然碼是不同種類的漢字A外碼B內碼C字型碼D交換碼正確答案是:A2、漢字字形碼的使用是在____A輸入時B內部傳送時C輸出時D兩臺計算機之…

jQuery Validate 驗證,校驗規則寫在控件中的具體例子

將校驗規則寫到控件中 <script src"../js/jquery.js" type"text/javascript"></script> <script src"../js/jquery.validate.js" type"text/javascript"></script> <script src"./js/jquery.metadata…

在oracle中使用Trigger

1、初始目標 在對表h1插入一條數據時&#xff0c;同時插入一條重復的數據&#xff08;只有主鍵不同&#xff09; 2、在PL/SQL里New一個Trigger或者手動敲入代碼 先說明一下&#xff0c;表h1包括4列ID、C1、C2、C3 create or replace trigger Trigger_Testafter insert on h1for…

html突出顯示,javascript-記住html頁面中突出顯示的文本(向html頁面添加注釋)

我有一個HTML文件,我正在用webkit打開它,我想開發一個應用程序,這樣,在打開它之后,我應該能夠選擇一些文本并將其突出顯示(例如,按下“ highlight text”按鈕).并且它應該記住突出顯示的文本,以便下次打開時應自動突出顯示相同的文本…要存儲哪些信息,以便下次可以突出顯示相同…

cygwin

根據cygwin user guide翻譯整理&#xff0c;希望對大家有所幫助。有錯誤清指出。 1 引言 cygwin是一個在windows平臺上運行的unix模擬環境&#xff0c;是cygnus solutions公司開發的自由軟件&#xff08;該公司開發了很多好東西&#xff0c;著名的還有eCos&#xff0c;不…

JAVA wait(), notify(),sleep具體解釋

在CSDN開了博客后&#xff0c;一直也沒在上面公布過文章&#xff0c;直到前一段時間與一位前輩的對話&#xff0c;才發現技術博客的重要&#xff0c;立志要把CSDN的博客建好。但一直沒有找到好的開篇的主題&#xff0c;今天再看JAVA線程相互排斥、同步的時候又有了新的體會&…

通過鍵盤上下鍵 JS事件,控制候選詞的選擇項

效果圖 JS代碼 //上下鍵 選擇事件 searchBackgroud 為樣式&#xff0c;只做標記&#xff0c;無實質樣式&#xff0c;因為和其他樣式不兼容&#xff0c;只能添加CSS$(document).keydown(function (event) {var upDownClickNum $("#SearchTips .searchBackgroud ").l…

物理競賽得獎學計算機,物理競賽林紫琪帶你探索清華學堂計算機科學實驗班”(姚班)...

林紫琪&#xff0c;34屆全國中學生物理競賽全國第22名&#xff0c;獲得女生最高分&#xff0c;入選國家集訓隊&#xff0c;現就讀于清華姚班。這是一條小科普&#xff1a;“清華學堂計算機科學實驗班”(姚班)由世界著名計算機科學家姚期智院士于2005年創辦&#xff0c;致力于培…

Jmeter===Jmeter中使用CSV Data Set Config參數化不重復數據執行N遍(轉)

Jmeter中使用CSV Data Set Config參數化不重復數據執行N遍 要求&#xff1a; 今天要測試上千條數據&#xff0c;且每條數據要求執行多次&#xff0c;&#xff08;模擬多用戶多次抽獎&#xff09; 1.用戶id有175個&#xff0c;且沒有任何排序規則&#xff1b; 2.要求175個用戶都…

[轉]wireshark 實用過濾表達式(針對ip、協議、端口、長度和內容) 實例介紹

首先說幾個最常用的關鍵字&#xff0c;“eq” 和 “”等同&#xff0c;可以使用 “and” 表示并且&#xff0c;“or”表示或者。“!" 和 "not” 都表示取反。 一、針對wireshark最常用的自然是針對IP地址的過濾。其中有幾種情況&#xff1a; &#xff08;1&#xff0…

[Flexbox] Using order to rearrange flexbox children

Using the order property we alter the order in which flexbox children appear on the page, without making changes to the dom. Desktop Mobile 轉載于:https://www.cnblogs.com/Answer1215/p/5453671.html

計算機怎么更改用戶頭像像,Win10系統電腦賬戶頭像怎么改成系統默認狀態?

為了保護電腦的安全&#xff0c;我們可以設置登錄賬號密碼&#xff0c;而賬號的頭像也是可以自行更換的。但是&#xff0c;某些時候&#xff0c;因為一些原因&#xff0c;我們需要將Win10系統賬戶的頭像去掉&#xff0c;即改成默認狀態。但是很多人都不清楚該怎么操作&#xff…