首頁 web前端 css教學 如何建立區塊級格式化上下文?區塊層級格式化上下文的作用

如何建立區塊級格式化上下文?區塊層級格式化上下文的作用

Aug 03, 2018 pm 05:44 PM

css中區塊層級格式化上下文是什麼?區塊層級格式化上下文(Block Formatting Context)是網頁CSS視覺渲染的一部分,並用於決定區塊盒子的佈局。在定位體系(Positioning Scheme)中它屬於常規流(Normal Flow),那麼如何建立區塊級格式化上下文?建立區塊級格式化需要滿足哪些條件?本文將給你一一說明。

FC(Formatting Context)翻譯過來就是格式化上下文/格式化範圍,指的是頁面佈局中的一塊區域,它擁有自己的渲染規則,決定自己的子元素如何佈局,並和其他元素的關係和作用。

根據css顯示分類,xhtml元素分為三種類型:塊狀元素,內聯元素,可變元素。為頁面元素加樣式的時候我們得知道這個元素是什麼類型,然後可以自己轉換成元素類型。就像我們可以透過display來讓某個內嵌元素變成塊狀元素(display:block)。有幾個特別的元素img,input預設是inline-block;

什麼是塊狀格式化上下文(BFC)?相當於一個特殊的區域。

如果一個元素符合了成為BFC的條件,該元素成為一個隔離了的獨立容器,元素內部元素會垂直的沿著其父元素的邊框排列,和外部元素互不影響。

觸發BFC 的條件如下:

1、浮動元素,float 除none 以外的值

2、絕對定位元素,position(absolute ,fixed)

3、display 為下列其中之一的值inline-blocks,table-cells,table-captions。 //就是不是區塊級盒子的區塊容器

4、overflow 除了visible 以外的值(hidden,auto,scroll)

滿足了上面這四個條件之一,就能夠創建區塊級格式化上下文,它裡面的內容所處的環境就是區塊級格式化上下文的環境。

在CSS3 中,BFC 叫做Flow Root,增加了一些觸發條件:

1、display 的table-caption 值

#2、 position 的fixed 值,其實fixed 是absolute 的一個子類,因此在CSS2.1 中使用這個值也會觸發BFC ,只是在CSS3 中更加明確了這一點。

元素設定IE 特有的CSS 屬性zoom: 1 觸發hasLayout ,zoom 用於設定或檢索元素的縮放比例,值為「1」即使用元素的實際尺寸,使用zoom: 1 既可以觸發hasLayout 不會對元素造成其他影響,相對來說會更為方便。這是ie下的情況

區塊層級格式化上下文(BFC)的作用:

(1) BFC 會阻止外邊距折疊

我理解折疊的意思是外邊距會重疊,並不會分的很清,就像你的就是我的,我的也是你的。

外邊距折疊的規則:僅當兩個區塊級元素相鄰並且在同一個區塊層級格式化上下文時,它們垂直方向之間的外邊距才會疊加。也就是說,即便兩個區塊級元素相鄰,但當它們不在同一區塊層級格式化上下文時它們的邊距也不會折疊。因此,阻止外邊距折疊只需產生新的 BFC 。

但是對於兩個相鄰元素來說,意義不大,沒有必要為它們加個外殼,但是對於嵌套元素來說就很有必要了,只要把父元素設為BFC就可以了。這樣子元素的margin就不會跟父元素的margin發生折疊了。

(2) BFC 可以包含浮動的元素

 這表示BFC中子元素不會超出他的包含塊,而position為absolute的元素可以超出他的包含區塊邊界

(3) BFC 可以阻止元素被浮動元素覆蓋

 這是根據每個元素的margin box的左邊, 與包含區塊border box的左邊相接觸(對於從左往右的格式化,否則相反)。即使存在浮動也是如此。這個原理實現的。

相關文章推薦:

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

#CSS理解區塊級格式上下文BFC

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

#

以上是如何建立區塊級格式化上下文?區塊層級格式化上下文的作用的詳細內容。更多資訊請關注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脫衣器

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 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

使用GraphQL緩存 使用GraphQL緩存 Mar 19, 2025 am 09:36 AM

如果您最近開始使用GraphQL或審查了其優點和缺點,那麼您毫無疑問聽到了諸如“ GraphQl不支持緩存”或

使用Redwood.js和Fauna構建以太坊應用 使用Redwood.js和Fauna構建以太坊應用 Mar 28, 2025 am 09:18 AM

隨著最近比特幣價格超過20k美元的攀升,最近打破了3萬美元,我認為值得深入研究創建以太坊

用高架創建自己的野蠻人 用高架創建自己的野蠻人 Mar 18, 2025 am 11:23 AM

無論您是開發人員的哪個階段,我們完成的任務(無論大小)都會對我們的個人和專業成長產生巨大影響。

VUE 3 VUE 3 Apr 02, 2025 pm 06:32 PM

它的出局!恭喜Vue團隊完成了完成,我知道這是一項巨大的努力,而且很長時間。所有新文檔也是如此。

您可以從瀏覽器獲得有效的CSS屬性值嗎? 您可以從瀏覽器獲得有效的CSS屬性值嗎? Apr 02, 2025 pm 06:17 PM

我有人寫了這個非常合法的問題。 Lea只是在博客上介紹瞭如何從瀏覽器中獲得有效的CSS屬性。那樣的是這樣。

在CI/CD上有點 在CI/CD上有點 Apr 02, 2025 pm 06:21 PM

我說的“網站”比“移動應用程序”更合適,但我喜歡Max Lynch的框架:

比較瀏覽器的響應式設計 比較瀏覽器的響應式設計 Apr 02, 2025 pm 06:25 PM

這些桌面應用程序中有許多目標是同時在不同的維度上顯示您的網站。因此,例如,您可以寫作

帶有粘性定位的堆疊卡和一點點的雜物 帶有粘性定位的堆疊卡和一點點的雜物 Apr 03, 2025 am 10:30 AM

前幾天,我發現了科里·金尼文(Corey Ginnivan)網站上的這一點,當您滾動時,彼此之間的卡片堆放集。

See all articles