BFC块级格式化上下文

深入理解块级格式化上下文(BFC) 一、 什么是BFC 块级格式化上下文,Block Formatting Context,也就是常说的BFC,它是Web页面的可视化CSS渲染区域的一部分,是布局过程中生成块级盒子的区域,也是浮动元素与其他元素的交互限定区域。 BFC的布局规则如下: 内部的盒子会在垂直方向,一个一个地放置 BFC是页面上的一个隔离的独立容器 属于同一个BFC的两个相邻Box的上下margin会发生重叠 计算... 阅读详情

定义

BFC(Block Formatting Context)块级格式化上下文。是CSS渲染的一块独立区域,在这块区域内的元素布局不会影响到外面,同样,外面的元素布局也不会影响到里面。

规则

  • 内部的Box会在垂直方向上一个接一个的放置
  • 垂直方向上的距离由margin决定。(完整的说法是:属于同一个BFC的两个相邻Box的margin会发生重叠(塌陷),与方向无关。)
  • 每个元素的左外边距与包含块的左边界相接触(从左向右),即使浮动元素也是如此。(这说明BFC中子元素不会超出他的包含块,而position为absolute的元素可以超出他的包含块边界)
  • BFC的区域不会与float的元素区域重叠
  • 计算BFC的高度时,浮动子元素也参与计算
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面元素,反之亦然

创建方式

  • 根元素
  • float的值不为none
  • overflow的值不为visible
  • display的值为inline-block、table-cell、table-caption
  • display:table也认为可以生成BFC,其实这里的主要原因在于Table会默认生成一个匿名的table-cell,正是这个匿名的table-cell生成了BFC
  • position的值为absolute或fixed

作用

一、解决父元素高度塌陷

当父元素中的子元素设置为浮动时,这个子元素的高度将不包括在父元素的高度内,换句话说就是,父元素的高度不包括该子元素的高度。那么这样就会造成一个问题,如果父元素不设置高度小于该子元素那么就会造成高度塌陷,子元素的高度将超过父元素。
红色部分为父元素

二、解决外边距重叠

两个相邻的元素分别设置margin如果他们不再一个BFC内,则他们设置的margin值将会重叠一部分

<div class="b3 inner">3</div>
<div class="b4 inner">4</div>
.inner {
  width: 100px;
  height: 100px;
  background-color: yellowgreen;
  border: 1px solid rgb(54, 11, 134);
  margin:100px 0;
}

在这里插入图片描述
我们把第二个元素放在一个div内,为它创建一个新的BFC,则会解决该问题

 <div class="b3 inner">3</div>
  <div class="outer">
    <div class="b4 inner">4</div>
  </div>
.outer{
  overflow: hidden;
}

在这里插入图片描述

三、自适应两栏布局

可以通过给元素创建BFC的方式,来创建两栏布局。

 <div class="outer">
    <div class="b3 inner">3</div>
    <div class="b4 inner">4</div>
  </div>
.outer{
  width:500px;
  height:600px;
  position: relative; 
}
.b4 {
  width:400px;
  height: 300px;
  background-color: aquamarine;
}
.b3 {
  float: left;
  width: 100px;
  height: 100px;
  background-color: yellowgreen;
  border: 1px solid rgb(54, 11, 134);
}

在这里插入图片描述

通过以上的代码我们创建了两个相邻的div,并且一个浮动在另一个之上。如果我们想要实现自适应两栏布局,就需要为没有浮动的元素创建BFC。

.b4 {
  width:400px;
  height: 300px;
  background-color: aquamarine;
  overflow:hidden;
}

在这里插入图片描述

BFC块级格式化上下文--小技巧 特性: (1)形成BFC的元素,会在垂直方向叠加margin (说明不形成BFC的话,父子元素和同级元素都会在垂直方向重叠margin) (2)形成BFC的元素,不会与浮动元素重叠 (3)形成BFC的元素,不会影响外面的布局;外面的布局也不会影响BFC内部布局 (4)形成BFC的元素的高度会将浮动元素计算在内。 形成BFC的条件 (1)根标签 (2)float不为none (... 阅读详情

相关推荐

EndNoteX9完整详细安装教程

EndNoteX9完整详细安装教程

rothschild666的博客 10万+

BFC--块级格式化上下文

BFC(Block formatting context) (1)概念: 直译为块级格式化上下文,把BFC理解成一块独立的渲染区域,BFC看成是元素的一种属性, 当元素拥有了BFC属性后,这个元素就可以看做成隔离了的独立容器。容器内的元素不会影响容器外的元素. ·我理解为:将BFC看成是一种属性,当拥有该属性的元素就相当于一块独立的区域。 (2)实现BFC属性的方法: 1. 浮动元素,float 除 none 以外的值 2. 定位元素,position的值不是stati...

weixin_43581952的博客 9877

【Macbook-Latex安装部署教程】【Win-Texlive镜像下载】【简单易上手】MacTex+Vscode/Texstudio

该教程记录自己在mac()上安装部署Latex环境的经验,整个教程操作简单,配置要求少,易上手。教程分成三部分:Mactex下载与安装,Vscode插件下载与配置文件修改,Texstudio安装。

sunriseOvO的博客 2570

块级格式化上下文BFC

这个时候,我们就可以用BFC的特性来解决布局中出现的这些问题。高度塌陷问题一般是由于元素浮动引起的,当一个元素本身没有设置高度,其高度完全由子元素撑开,而子元素被设置为浮动元素后,由于子元素脱离了标准文档流,因此父元素就没有了高度。总结以上几点可以得出一个结论,BFC就相当于一个包含在根元素中的一个小的独立的根元素布局,而且这个BFC中的元素完全不会影响到BFC之外的其他元素。BFC特性所影响的元素只包括这个BFC容器的一级子元素,并不能影响元素本身节点和其子元素的子元素。BFC包含内部所有元素的行为。

Dominic_W的博客 625

ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇

shardingsphere 5.5.0移除了sm4算法,自己加上即可。增加spi扩展org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm增加以下代码:SM4算法代码/***/static {@Getter@Overrideif (!

qq_21903999的博客 4746

Latex | IEEE双栏排版中长公式的排版

IEEE双栏排版中,有时候公式过于长了,过宽,导致单栏排版不下。

qq_43466146的博客 1万+

【CSS】格式化 (排版) 上下文

针对BFC网上有特别多的说法,但是都没有解释的很清楚,所以我是专门查过W3C文档的。在标准流中,我们所有的盒子,不管是块级盒子还是行内盒子,它们都属于某一个FC(格式化上下文),块级盒子属于BFC(块级格式化上下文),行内级盒子属于 IFC(行内格式化上下文)。BFC就是用来决定块级盒子是如何排布的。在BFC中,块级盒子是一个挨着一个在垂直方向排布的,垂直方向的间距由 margin 属性决定,并且在同一个BFC中,两个相邻的 box 之间 margin会折叠,每个元素的左边缘是紧挨着包含块的左边缘的。

小秀的博客 1333

IWR6843ISK+DCA1000EVM 本人遇到的所有报错和解决方案

本文详解了初次使用DCA1000EVM和mmave studio遇到的一系列的问题以及解决方法

2301_77883976的博客 3312

css之BFC块级格式化上下文

css之BFC块级格式化上下文 BFC 定义 BFC(块级格式化上下文),一个创建了新的BFC的盒子是独立布局的,盒子内元素的布局不会影响盒子外面的元素。在同一个BFC中的两个相邻的盒子在垂直方向发生margin重叠的问题 BFC是指浏览器中创建了一个独立的渲染区域,该区域内所有元素的布局不会影响到区域外元素的布局,这个渲染区域只对块级元素作用。 ...

low666的博客 725

告别CMake依赖!在Visual Studio 2022中直接配置VTK 9.4开发环境(附完整项目示例)

本文详细介绍了如何在Visual Studio 2022中直接配置VTK 9.4开发环境,无需依赖CMake。通过图文教程和完整项目示例,帮助C++开发者快速集成VTK库,简化开发流程,提升工作效率。特别适合科学可视化任务的开发者。

weixin_26804345的博客 415

微信小程序 - [wxapplib]] backgroundfetch privacy fail {“errno”:101,“errMsg”:“private_getBackgroundFetchDa

微信小程序报错之backgroundfetch privacy fail,微信小程序报错WAServiceMainContext.js:1 [wxapplib]] backgroundfetch privacy fail {“errno“:101,怎么解决?问题出现:调用wx.chooseMessageFile报错(开发者工具中正常)用户隐私协议中未声明小程序使用此功能,安卓真机调试报错:backgroundfetch privacy fail ,怎么解决?微信小程序[wxapplib]] backgrou

🏆 前端领域优质创作者 1万+

什么是 CSS 的 BFC(块级格式化上下文)?如何触发 BFC?

BFC(Block Formatting Context,块级格式化上下文)是 CSS 渲染中的一个概念,它是一块独立的渲染区域,规定了在该区域中,块级盒子(block box)的布局方式,并且这个区域的内部布局不会影响到外部元素。可以把 BFC 理解为一个 **“隔离的独立容器”**:容器里面的元素无论如何布局,都不会影响到容器外面的元素。BFC是 CSS 中的块级格式化上下文,是一个独立的渲染区域。BFC 内部的布局不会影响到外部元素。float等。

2501_92414735的博客 1008

嵌入式视频应用开发者必读:嵌入式Linux+FFmpeg硬件编解码实战指南

在嵌入式Linux上,FFmpeg支持多种硬件加速API,比如VAAPI、VDPAU、CUDA,以及针对特定平台的专用接口(如NVIDIA的NVENC、Intel的QSV、ARM的Mali)。FFmpeg的硬件解码通过-hwaccel参数启用,咱们以常见的H.264和HEVC(H.265)格式为例,展示如何用VAAPI和V4L2实现高效解码。: FFmpeg硬件加速需要额外的库,比如libva(VAAPI)、libv4l2(V4L2)或libnvcodec(CUDA)。

大模型大数据攻城狮的专栏 2205

bfc块级格式化上下文

【代码】bfc块级格式化上下文。

我的博客简介 251

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

详解BFC:块级格式化上下文

1、什么是BFC以及如何创建BFC (1)BFC 的概念: BFC(Block formatting context),即块级格式化上下文,它作为 HTML 页面上的一个独立渲染区域,只有区域内元素参与渲染,且不会影响其外部元素。 在一个 Web 页面的 CSS 渲染中,块级格式化上下文 (Block Fromatting Context)是按照块级盒子布局的。 (2)W3C 对 BFC 的定义如下: 浮动元素和绝对定位元素,非块级盒子的块级容器(例如 inline-blocks,table-cells 和

icemwj的博客 3129

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

BFC—块级格式化上下文

BFC(块级格式化上下文)是CSS中解决布局问题的关键机制,它创建独立渲染区域隔离内外元素的影响。BFC能解决高度塌陷、外边距合并和浮动元素重叠三大经典问题。触发方式包括设置浮动、定位、溢出属性或特定display值,推荐使用副作用最小的display:flow-root。BFC的应用哲学体现了"边界带来自由"的东方智慧,暗示人生也需要建立清晰界限来实现内在秩序。这种技术概念与精神修养的类比,揭示了在数字与现实中构建自洽系统的重要性。

2301_80723943的博客 1016

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

BFC 块级格式化上下文

 BFC (Block formatting context) 直译为”块级格式化上下文”。它是一个独立的渲染区域,只有 Block-level box 参与, 它规定了内部的 Block-level Box 如何布局,并且与这个区域外部毫不相干。 BFC的生成 CSS2.1中规定满足下列CSS声明之一的元素便会生成BFC 根元素 float属性不为 none position 为...

靜哥哥的博客 444

bfc块级格式化上下文的原理

  由于如浮动、margin值叠加等时候会用到BFC,但让我详细说BFC到底是什么,有说不清楚,所以决定对BFC的知识进行一个整理。 1.BFC是什么   BFC中三个英文字母B、F、C分别是Block(块级盒子)、Formatting(格式化)、Context(上下文)。   BFC的中文意思是块级格式化上下文。简单的理解BFC,其从样式上和普通盒子没有什么区别,其从功能上可以将其看作是隔离了的...

qq_38152997的博客 284

CSS-BFC 块级格式化上下文

CSS-BFC 块级格式化上下文

这个人很懒~ 473

BFC(块级格式化上下文)的作用及生产方法

由于如浮动、margin值叠加等时候会用到BFC,但让我详细说BFC到底是什么,有说不清楚,所以决定对BFC的知识进行一个整理。 1.BFC是什么 BFC中三个英文字母B、F、C分别是Block(块级盒子)、Formatting(格式化)、Context(上下文)。 BFC的中文意思是块级格式化上下文。简单的理解BFC,其从样式上和普通盒子没有什么区别,其从功能上可以将其看作是隔离了的独立容器,容...

极客神殿 418
上一篇: webpack总结
下一篇: React尝鲜
菊の物语
博客等级 码龄10年 322粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值