国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

淺析CSS里的BFC和IFC的用法

2024-07-11 08:31:54
字體:
來源:轉載
供稿:網友

前言

之前一直聽到有人提到 CSS里的BFC,正巧在 IFE的練習里遇到了外邊距折疊的問題,所以正好弄清楚BFC的機制。 (參考來源 見文末的 Reference)

一 什么是 BFC

和之前所有博文一樣,還是先從What的角度開始介紹,由淺入深的理解BFC。

所謂的 Formatting context(格式化上下文), 它是 W3C CSS2.1 規范中的一個概念。

它是頁面中的一塊渲染區域,并且有一套渲染規則.

它決定了其子元素將如何定位,以及和其他元素的關系和相互作用。

而 Block Formatting Contexts (BFC,塊級格式化上下文),就是 一個塊級元素 的渲染顯示規則。通俗一點講,可以把 BFC 理解為一個封閉的大箱子,,容器里面的子元素不會影響到外面的元素,反之也如此。

BFC的布局規則如下:

1 內部的盒子會在垂直方向,一個個地放置;
2 BFC是頁面上的一個隔離的獨立容器;
3 屬于同一個BFC的 兩個相鄰Box的 上下margin會發生重疊 ;
4 計算BFC的高度時,浮動元素也參與計算
5 每個元素的左邊,與包含的盒子的左邊相接觸,即使存在浮動也是如此;
6 BFC的區域不會與float重疊;

那么如何觸發 BFC呢?只要元素滿足下面任一條件即可觸發 BFC 特性:

    body 根元素; 浮動元素:float 不為none的屬性值; 絕對定位元素:position (absolute、fixed) display為: inline-block、table-cells、flex overflow 除了visible以外的值 (hidden、auto、scroll)

二 BFC的特性及應用

接下來介紹BFC常見的特性和應用,這一部分 在解釋原因時,會用到上文的布局規則 和 觸發條件,所以需要注意一下。

1 兩個 相鄰的普通流中的 塊元素垂直方向上的 margin會折疊

<head>.p { width:200px; height:50px; margin:50px 0; background-color:red; } </head><body> <div class="p"></div> <div class="p"></div> </body>

效果圖是:

根據BFC規則的第3條:

盒子垂直方向的距離由margin決定,

屬于 同一個BFC的 + 兩個相鄰Box的 + 上下margin 會發生重疊。

上文的例子 之所以發生外邊距折疊,是因為他們 同屬于 body這個根元素, 所以我們需要讓 它們 不屬于同一個BFC,就能避免外邊距折疊:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长武县| 福州市| 都匀市| 湟源县| 靖州| 临泽县| 徐闻县| 和平区| 保靖县| 酒泉市| 富裕县| 霍山县| 湘潭县| 庄浪县| 亚东县| 贡嘎县| 丹寨县| 义马市| 华安县| 苏州市| 临猗县| 南涧| 石嘴山市| 连城县| 福贡县| 池州市| 江永县| 墨竹工卡县| 上犹县| 兴业县| 高尔夫| 桦川县| 禹州市| 平凉市| 汕头市| 舒兰市| 屯门区| 武宣县| 岳普湖县| 高唐县| 彝良县|