BFC 的擴(kuò)寫是 Block formatting contexts (塊級(jí)格式化上下文),它看不見摸不著但對(duì) CSS 盒模型有影響。
標(biāo)準(zhǔn)里對(duì) BFC 的描述是:
Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with "overflow" other than "visible" (except when that value has been propagated to the viewport) establish new block formatting contexts for their contents.
同時(shí)提到一個(gè)前端常見的 collapse 現(xiàn)象:
Vertical margins between adjacent block-level boxes in a block formatting context collapse.
所以筆者是這么理解 BFC 的:
浮動(dòng)元素、絕對(duì)定位元素、非塊盒的塊容器(inline-block、table-cell、table-caption 元素)、overflow 不為 visible 的元素會(huì)創(chuàng)建 BFC
同一個(gè) BFC 里,兩個(gè)相鄰的塊級(jí)盒的垂直外邊距會(huì) collapse(塌陷)
也就是說不同的 BFC之間就會(huì)消除相鄰元素的 collapse,以下是可創(chuàng)建 BFC 的條件:
div: float:left | right
div: display:inline-block | table-cells | table-captions
div: position:absolute
div: overflow:hidden | scroll | auto | paged-x | paged-y | paged-x-controls | paged-y-controls | fragments
這里寫了個(gè)測(cè)試 collapse 的 demo,經(jīng)測(cè)試發(fā)現(xiàn):
“同一個(gè) BFC 里,兩個(gè)相鄰的塊級(jí)盒”可以指相鄰元素如 div-2 和 div-3,也可以指父元素和子元素如 div-1 和 div-2 或 3
設(shè)置 overflow 時(shí),只能讓 div-1 與它的子元素 div-2 或 3 消除 collapse,而不能讓 div-1 與相鄰元素 div-4 消除 collapse
參考:BFC 的文檔
原文:BFC 的簡(jiǎn)單理解
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/112464.html
摘要:非根元素,且其屬性是和的元素的包含塊它的包含塊是由最近的祖先塊容器盒的內(nèi)容區(qū)域創(chuàng)建的。如何觸發(fā)只需要保證滿足下面至少一條就會(huì)觸發(fā)根元素設(shè)置了值不為的元素設(shè)置了屬性不為的元素設(shè)置了屬性不為和的元素設(shè)置了的值為和中的任何一個(gè)的元素。 作者:心葉時(shí)間:2018-04-18 17:53 包裹元素剪裁條件 是不是包裹元素overflow設(shè)置為hidden以后,內(nèi)部元素如果超過包裹元素的話就會(huì)被剪...
摘要:布局中有一些概念,一旦你理解了它們,就能真正提高你的布局能力。我們通常有兩種方法來解決這個(gè)布局問題。是布局中的一個(gè)迷你布局你可以將看作是頁面內(nèi)的一個(gè)迷你布局。理解瀏覽器如何布置網(wǎng)頁是非常基礎(chǔ)的。 CSS布局中有一些概念,一旦你理解了它們,就能真正提高你的 CSS 布局能力。本文是關(guān)于塊格式化上下文(BFC)的。你可能從未聽說過這個(gè)術(shù)語,但是如果你曾經(jīng)用CSS做過布局,你可能知道它是什么...
摘要:垂直方向的距離由決定。屬于同一個(gè)的兩個(gè)相鄰的會(huì)發(fā)生疊加,與方向無關(guān)。計(jì)算的高度時(shí),浮動(dòng)子元素也參與計(jì)算。形成后出現(xiàn)的常見問題重疊問題浮動(dòng)相關(guān)問題可以解決的問題疊加的問題,要阻止重疊,只要將倆個(gè)元素別放在一個(gè)中即可。 1. 什么是BFC BFC(block formatting context):塊級(jí)格式化上下文。簡(jiǎn)單來說它就是一種會(huì)影響元素與元素之間的位置、間距的屬性。 2. 如何觸...
閱讀 2978·2021-11-24 09:39
閱讀 2549·2019-08-30 15:53
閱讀 3082·2019-08-30 13:47
閱讀 1391·2019-08-30 12:50
閱讀 1537·2019-08-29 16:31
閱讀 2697·2019-08-29 13:14
閱讀 1635·2019-08-29 10:55
閱讀 859·2019-08-26 13:32