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

什麼是格式化上下文(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
'訂閱播客”鏈接應在哪裡?'訂閱播客”鏈接應在哪裡?Apr 16, 2025 pm 12:04 PM

有一段時間,iTunes是播客中的大狗,因此,如果您將“訂閱播客”鏈接到喜歡:

瀏覽器引擎多樣性瀏覽器引擎多樣性Apr 16, 2025 pm 12:02 PM

當他們在2013年去Chrome時,我們失去了歌劇。與Edge今年早些時候也進行了同樣的交易。邁克·泰勒(Mike Taylor)稱這些變化為“減少

網絡共享的UX注意事項網絡共享的UX注意事項Apr 16, 2025 am 11:59 AM

從垃圾點擊誘餌網站到大多數出版物的最多,共享按鈕長期以來一直無處不在。然而,這些

每周平台新聞:Apple部署網絡組件,漸進的HTML渲染,自託管關鍵資源每周平台新聞:Apple部署網絡組件,漸進的HTML渲染,自託管關鍵資源Apr 16, 2025 am 11:55 AM

在本週的綜述中,Apple進入Web組件,Instagram如何插入腳本以及一些思考的食物,以進行自託管關鍵資源。

git Pathspecs以及如何使用它們git Pathspecs以及如何使用它們Apr 16, 2025 am 11:53 AM

當我查看GIT命令的文檔時,我注意到其中許多人都有選擇。我最初以為這只是一個

產品圖像的彩色拾取器產品圖像的彩色拾取器Apr 16, 2025 am 11:49 AM

聽起來有點像一個困難的問題,不是嗎?我們經常沒有成千上萬種顏色的產品鏡頭,以便我們可以隨身攜帶。我們也不是

黑暗模式與React和Themeprovider切換黑暗模式與React和Themeprovider切換Apr 16, 2025 am 11:46 AM

我喜歡網站具有“暗模式”選項時。黑暗模式使我更容易閱讀網頁,並幫助我的眼睛更放鬆。許多網站,包括

帶有HTML對話框元素的一些動手帶有HTML對話框元素的一些動手Apr 16, 2025 am 11:33 AM

這是我第一次查看HTML元素。我已經意識到了一段時間,但是尚未將其旋轉。它很酷,

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

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