首頁 web前端 css教學 css佈局中格式化上下文(FC)類型有哪些?格式化上下文(FC)的類型介紹

css佈局中格式化上下文(FC)類型有哪些?格式化上下文(FC)的類型介紹

Aug 03, 2018 pm 04:48 PM
bfc css html html5 佈局

什麼是格式化上下文(FC)?格式化上下文(Formatting Context),指頁面中一個渲染區域,擁有一套渲染規則,它決定了其子元素如何定位,以及與其他元素的相互關係和作用,那麼css佈局中格式化上下文有哪些呢?下面這篇文章為大家介紹了幾種格式化上下文的類型。

區塊級格式上下文(BFC):

什麼是BFC? Block Formatting Context,區塊級格式化上下文,一個獨立的區塊級渲染區域,該區域擁有一套渲染規則來約束區塊級盒子的佈局,且與區域外部無關。

BFC的約束規則

1、內部的BOX會在垂直方向上一個接一個的放置;

2.垂直方向上的距離由margin決定。 (完整的說法是:屬於同一個BFC的兩個相鄰的BOX的margin會發生重疊,與方向無關。)

3、每個元素的左外邊距與包含塊的左邊界相接觸(從左到右),即使浮動元素也是如此。 (這表示BFC中的子元素不會超出它的包含塊,而position為absolute的元素可以超出它的包含塊邊界);

#4、BFC的區域不會與float的元素區域重疊;

#5、計算BFC的高度時,浮動子元素也參與計算;

#6、BFC就是頁面上的一個隔離的獨立容器,容器裡面的子元素不會影響到外面的元素,反之亦然;

BFC的應用

  • #防止margin發生重疊

  • ##可防止發生因浮動導致的高度塌陷

    #怎麼產生BFC
  • float的值不為none;

  • #overflow

    的值不為visible;

    display
  • 的值為
inline-block

#table-cell

table-caption;

position

的值為absolute

fixed

;

display: table也認為可以產生BFC?其實是在於Table會預設產生一個匿名的table-cell,而正是這個匿名的table-cell產生了BFC。

行內格式化上下文(IFC):

  1. #什麼是IFC? IFC(Inline Formatting Contexts)直譯為"行內格式化上下文",IFC的line box(線框)高度由其包含行內元素中最高的實際高度計算而來(不受到垂直方向的padding/margin 影響)IFC有的特性

  2. 1、IFC中的line box一般左右都貼緊整個IFC,但是會因為float元素而擾亂。 float元素會位於IFC與與line box之間,使得line box寬度縮短。
  3. 2、IIFC中時不可能有區塊級元素的,當插入區塊級元素時(如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###將改變傳統的佈局模式,他將讓佈局從一維佈局變成了二維佈局。簡單的說,有了###GFC###之後,佈局不再侷限於單一維度了。這時候你要實現類似九宮格,拼圖之類的佈局效果顯得格外的容易。 ############自適應格式化上下文(FFC):#############FFC(Flex Formatting Contexts)直譯為"自適應格式化上下文",display值為flex或inline-flex的元素將會產生自適應容器(flex container)。 ###

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

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

自適應格式化上下文(FFC)與區塊級格式上下文(BFC)的區別:

FFC與BFC有點類似,但仍有以下幾點區別:

1、Flexbox 不支援::first-line 和::first-letter 這兩種偽元素

2、vertical-align 對Flexbox 中的子元素是沒有效果的

# 3、float 和clear 屬性對Flexbox 中的子元素是沒有效果的,也不會使子元素脫離文檔流(但是對Flexbox 是有效果的!)

4、多欄佈局(column- *) 在Flexbox 中也是失效的,就是說我們不能使用多欄佈局在Flexbox 排列其下的子元素

5、Flexbox 下的子元素不會繼承父級容器的寬

#相關文章推薦:

CSS > 譯文:理解CSS中的區塊級格式化上下文_html/css_WEB-ITnose

CSS >行內格式化上下文中的各種高度計算_html/css_WEB-ITnose

#區塊級格式化上下文(block formatting context)、浮動和絕對定位的工作原理詳解_html/ css_WEB-ITnose

以上是css佈局中格式化上下文(FC)類型有哪些?格式化上下文(FC)的類型介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

了解HTML,CSS和JavaScript:初學者指南 了解HTML,CSS和JavaScript:初學者指南 Apr 12, 2025 am 12:02 AM

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

React在HTML中的作用:增強用戶體驗 React在HTML中的作用:增強用戶體驗 Apr 09, 2025 am 12:11 AM

React通過JSX與HTML結合,提升用戶體驗。 1)JSX嵌入HTML,使開發更直觀。 2)虛擬DOM機制優化性能,減少DOM操作。 3)組件化管理UI,提高可維護性。 4)狀態管理和事件處理增強交互性。

H5指的是什麼?探索上下文 H5指的是什麼?探索上下文 Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5與HTML5相同嗎? H5與HTML5相同嗎? Apr 08, 2025 am 12:16 AM

"h5"和"HTML5"在大多數情況下是相同的,但它們在某些特定場景下可能有不同的含義。 1."HTML5"是W3C定義的標準,包含新標籤和API。 2."h5"通常是HTML5的簡稱,但在移動開發中可能指基於HTML5的框架。理解這些區別有助於在項目中準確使用這些術語。

HTML:結構,CSS:樣式,JavaScript:行為 HTML:結構,CSS:樣式,JavaScript:行為 Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML的未來:網絡設計的發展和趨勢 HTML的未來:網絡設計的發展和趨勢 Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

See all articles