香蕉乱码成人久久天堂爱_精品久久国产字幕高潮_黑人粗大猛烈进出高潮视频_国产吃奶在线观看_国内精品国内自产视频

400-650-7353
您所在的位置:首頁 > IT干貨資料 > web前端 > 【Web前端基礎知識】什么是BFC

【Web前端基礎知識】什么是BFC

一、什么是BFC?

BFC(Block formatting context)直譯為"塊級格式化上下文"。它是一個獨立的渲染區(qū)域,只有Block-level box參與, 它規(guī)定了內部的Block-level Box如何布局,并且與這個區(qū)域外部毫不相干。

在解釋什么是BFC之前,我們需要先知道Box、Formatting Context的概念。

Box:css布局的基本單位

Box 是 CSS 布局的對象和基本單位, 直觀點來說,就是一個頁面是由很多個 Box 組成的。元素的類型和 display 屬性,決定了這個 Box 的類型。 不同類型的 Box, 會參與不同的 Formatting Context(一個決定如何渲染文檔的容器),因此Box內的元素會以不同的方式渲染。讓我們看看有哪些盒子:

block-level 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;

run-in box: css3 中才有, 這兒先不講了。

Formatting Context

Formatting context 是 W3C CSS2.1 規(guī)范中的一個概念。它是頁面中的一塊渲染區(qū)域,并且有一套渲染規(guī)則,它決定了其子元素將如何定位,以及和其他元素的關系和相互作用。最常見的 Formatting context 有 Block fomatting context (簡稱BFC)和 Inline formatting context (簡稱IFC)。

BFC是一個獨立的布局環(huán)境,其中的元素布局是不受外界的影響,并且在一個BFC中,塊盒與行盒(行盒由一行中所有的內聯元素所組成)都會垂直的沿著其父元素的邊框排列。

BFC的布局規(guī)則

內部的Box會在垂直方向,一個接一個地放置。

Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊。

每個盒子(塊盒與行盒)的margin box的左邊,與包含塊border box的左邊相接觸(對于從左往右的格式化,否則相反)。即使存在浮動也是如此。

BFC的區(qū)域不會與float box重疊。

BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素。反之也如此。

計算BFC的高度時,浮動元素也參與計算。

什么是bfc?

Formatting Context:指頁面中的一個渲染區(qū)域,并且擁有一套渲染規(guī)則,他決定了 其子標簽如何定位,以及與其他標簽的相互關系和作用。

BFC塊級格式化上下文,它是指一個獨立的塊級渲染區(qū)域,只有Block-level BOX參與, 該區(qū)域擁有一套渲染規(guī)則來約束塊級盒子的布局,且與區(qū)域外部無關。

怎樣生成BFC

根標簽

float的值不為none

overflow 的值不為 visible

display 的值為 inline-block

position 的值為 absolute 或 fixed

BFC的特性

垂直方向上的距離由margin決定,屬于同一個BFC的兩個相鄰標簽的margin會發(fā)生重疊。

每個標簽的左外邊距與包含塊的左邊界相接觸(從左向右),即使浮動標簽也是如此。

BFC 的區(qū)域不會與 float 的標簽區(qū)域重疊。(不包括固定定位方法)

計算BFC的髙度時,浮動子標簽也參與計算。

BFC就是頁面上的一個隔離的獨立容器,容器里面的子標簽不會影響到外面標簽, 反之亦然。

BFC解決的問題

外邊距塌陷

清浮動

兩欄或者三欄自適應布局 (只能用overflow:hidden)

文章“【Web前端基礎知識】什么是BFC”已幫助

更多內容

>>本文地址:http://www.736631.com/zhuanye/2021/70627.html

THE END  

聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經許可不得擅自轉載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結果
  • 大前端大前端
  • 大數據大數據
  • 互聯網營銷互聯網營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯網嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內設計室內設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網頁設計網頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發(fā)VR/AR
  • 網絡安全網絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME