久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

css布局之BFC模式(block formatting context)

這篇文章主要介紹了css布局之BFC模式(block formatting context),通過BFC盒子的一些特性和應用場景解釋了BFC模式,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一

詳解BFC【 block formatting context】

BFC這個東西說常見的話你可能不覺得,但是你肯定會常用到,也許你在用的時候也沒想到BFC這東西。那它究竟是什么呢,我們來一起看一下。

官方給出的BFC解釋是這樣的,浮動元素和絕對定位元素,非塊級盒子的塊級容器(例如 inline-blocks, table-cells, 和 table-captions),以及overflow值不為“visiable”的塊級盒子,都會為他們的內容創建新的塊級格式化上下文。

在一個塊級格式化上下文里,盒子從包含塊的頂端開始垂直地一個接一個地排列,兩個盒子之間的垂直的間隙是由他們的margin 值所決定的。兩個相鄰的塊級盒子的垂直外邊距會發生疊加。

在塊級格式化上下文中,每一個盒子的左外邊緣(margin-left)會觸碰到容器的左邊緣(border-left)(對于從右到左的格式來說,則觸碰到右邊緣),即使存在浮動也是如此,除非這個盒子創建一個新的塊級格式化上下文。

上面反復提到了“ block formatting context”,顯而易見BFC就是他們的縮寫,官方還有”inline formatting context“,那也就是說”formatting context“我們需要仔細的看一下是什么意思,那我們就拆分來看看:

formatting:n,格式化的意思,v,使格式化( format的現在分詞 ); 規定…的格式(或形狀、大小、比例等);
context:語境; 上下文; 背景; 環境;

放到一起的意思就是“格式化上下文”,它是頁面中的一塊渲染區域,并且有一套渲染規則,它決定了其子元素將如何定位,以及和其他元素的關系和相互作用。

最常見的Formatting context有Block fomatting context(簡稱BFC)和Inline formatting context(簡稱IFC)。CSS2.1 中只有BFC和IFC, CSS3中還增加了GFC和FFC.

Box也是比較重要的一個概念,Box是CSS布局的對象和基本單位, 直觀點來說,就是一個頁面是由很多個Box(即boxes)組成的。元素的類型和display屬性,決定了這個Box的類型。 不同類型的Box, 會參與不同的Formatting context(一個決定如何渲染文檔的容器),因此Box內的元素會以不同的方式渲染。

例如display屬性值為block, list-item, table的元素,會生成block-level box。并且參與block fomatting context。 inline-level box: display屬性為inline, inline-block, inline-table的元素,會生成inline-level box。并且參與inline formatting context

那么我們通俗的理解一下,BFC就是“塊級格式化上下文”的意思,創建了 BFC的元素就是一個獨立的盒子,不過只有Block-level box可以參與創建BFC, 它規定了內部的Block-level Box如何布局,并且與這個獨立盒子里的布局不受外部影響,當然它也不會影響到外面的元素。

那么我們來一起看一下BFC盒子的一些特性:

1、內部的Box會在垂直方向,從頂部開始一個接一個地放置。
2、Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發生疊加。
3、每個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。
4、BFC的區域不會與float box疊加。
5、BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素,反之亦然。
6、計算BFC的高度時,浮動元素也參與計算。

在哪些場景可以用到BFC

1.解決margin疊加問題

當盒子上下排布,上方盒子margin-bottom:50px;下面的盒子margin-top:50;那么神奇的事情就發生了,兩個盒子按照疊加來算的話,距離應該是100px,但是我們發現實際上兩個margin值進行了疊加,只剩下50px,那么這個時候我們就可以觸發BFC模式,給其中一個盒子添加一個父級元素;

2.用于布局
 

元素的左外邊距會觸碰到包含塊容器的做外邊框,就算存在浮動也會如此,那么我們可以利用這種方式來一個兩列布局,第一個盒子浮動,第二個盒子margin-left賦值;

3.用于清除浮動,計算BFC高度

我們發現由于里面兩個子元素浮動的關系,兩個box已經脫離了父元素的包含塊,父元素高度已經塌陷,我們需要讓父元素包含兩個box子元素,這樣計算高度時,兩個浮動子元素就會參與,所以我們要閉合浮動,觸發父元素的BFC,例如overflow:hidden;

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助~如果有疑問大家可以留言交流,謝謝大家對的支持!

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

居中是我們使用css來布局時常遇到的情況。使用css來進行居中時,有時一個屬性就能搞定,本篇文章主要介紹了CSS布局奇淫技巧之--各種居中,有興趣的可以了解一下。
本篇文章主要介紹了css中Float屬性, 顧名思義,就是讓設置的標簽產生浮動效果,就是脫離原來頁面的標準輸出流。
主站蜘蛛池模板: 日韩精品久久一区二区三区 | 亚洲精品一区二区三区在线观看 | 中文在线一区二区 | 天天干夜夜操 | 久久av一区二区三区 | 亚洲精品女人久久久 | 色婷婷综合久久久中字幕精品久久 | 国产在线不卡视频 | 精品综合久久久 | 羞羞视频免费观看入口 | 在线观看a视频 | 97超碰在线免费 | 午夜精品久久久久久久久久久久久 | 亚洲第一视频 | 中文字幕免费 | 玖玖视频 | 国产日产精品一区二区三区四区 | 国产一区二区精品在线观看 | 精品久久国产 | 国产馆 | 91精品国产一区二区三区 | 精品九九在线 | 一区二区三区福利视频 | 日韩在线中文 | 日日操夜夜操天天操 | 精品欧美一区二区三区久久久 | 中文字幕亚洲一区 | 久久精品亚洲一区二区三区浴池 | 二区在线视频 | 四虎永久免费黄色影片 | 日韩高清一区 | 国产美女特级嫩嫩嫩bbb片 | 精品美女| 麻豆国产精品777777在线 | 天天草狠狠干 | 国产精品久久久久久久模特 | 国产精品av久久久久久毛片 | 国产精品久久久久久av公交车 | 日韩在线视频一区 | 成人免费视频在线观看 | 免费午夜视频 |