css BFC 原理

CSS中的BFC详细讲解(易懂) 一个BFC区域只包含它的子元素,不包含其子元素的子元素。成为一个BFC区域要满足一定的条件。不同的BFC区域相互独立,互补影响。BFC是属于普通流的,我们可以把BFC看成页面的一块渲染区,他有自己的渲染规则,简单来说就是BFC可以看做元素的属性,当元素有了BFC这个属性,这个元素可以看做隔离了的容器,容器里面的元素不会在布局上影响到外面的元素。 阅读详情
网上有很多帖子是说bfc的,但是大部分都是讲一些,具体的表现,很少有涉及到原理的,我结合自己的理解和大家一起分享下BFC的原理。

BFC是Block Formatting Context的简写,中文直译为块级格式上下文。

BFC就是一种布局方式,其中Formatting context 是W3C CSS2.1规范中的一个概念,他是页面中的一块渲染区域,并且有一套的渲染规则,他决定了其子元素如何定位,以及和其他元素的关系和相互作用。最常见的Formatting context有Block Formatting Context和Inline Formatting Context.
通俗一点,可以把BFC理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。

触发BFC的方式(一下任意一条就可以)
1.float不为none;
2.overflow不为visibile
3.display:table-cell、table-caption、inline-block
4.posttion不为static、relative

BFC常见的四种情况
   1.浮动的元素会被父级计算高度,即清除内部浮动(父级触发了BFC)

   2.非浮动元素不会覆盖浮动元素位置,即创建自适应两栏布局(非浮动元素触发了BFC)

   3.margin不会传递给父级,即父子不齐下(父级触发了BFC)

   4.两个相邻元素上下margin会重叠,即垂直margin合并(给其中一个元素增加一个父级,然后让他的父级触发BFC)
<div style="border:1px solid #f00;overflow:hidden; ">
    <div style="width:100px; height:100px; background:lightgreen;float:left;">bfc</div>
</div>

<div style="border:1px solid #f00;margin-top:100px; ">
    <div style="width:100px; height:100px; background:lightgreen;float:left;">bfc1</div>
    <div style="width:100px; height:100px; background:yellow;overflow:hidden;">bfc2</div>
</div>

<div style="background:blue;margin-top:100px;overflow:hidden;">
    <div style="width:100px; height:100px; background:lightgreen; margin-top:100px;">bfc1</div>
    <div style=" height:100px; background:yellow;">111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
</div>

<div style="margin-top:100px; border:1px solid yellow;">
    <div style="width:100px; height:100px; background:lightgreen; margin:100px 0;">bfc1</div>
    <div style="overflow:hidden;">
        <div style="width:100px; height:100px; background:yellow; margin:100px 0;">bfc2</div>
    </div>
</div>

这里写图片描述

css扩展引申到BFC(HTml,css底层原理) 在打包工具之前手动打包HTML,css,JavaScript等是非常麻烦的,现在有一个webpack,里面有很多的插件,到时候写一个.browserlist的文件,写上需要适配内些浏览器,webpack里面的插件根据你的内容自动会去can i use里面查找适配的浏览器,那些浏览器css需要加上相应的前缀,那些不需要,最后将代码打包的时候,会自动添加相应的浏览器前缀。确实是因为没有设置margin,单从内部渲染来看,我们行盒也好,div也好margin的内核逻辑就是BFC生成的。 阅读详情

相关推荐

sdc时钟约束2——多驱动时钟

sdc 多驱动时钟 master_clock

qq_40411444的博客 5529

css中的BFC

css中的BFC BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。 形成BFC的条件 ​ 1、浮动元素,float 除 none 以外的值; ​ 2、定位元素,position(absolute,fixed); ​ 3、display 为以下其中之一的值 inline-block,table-cell,table-caption; ​ 4、overflow

weixin_48210599的博客 574

新年美食鉴赏——基于注意力机制CBAM的美食101分类

新年美食鉴赏——基于注意力机制CBAM的美食101分类一、数据预处理1.数据集介绍2.读取标签3.统一命名4.整理图片路径5.划分训练集与验证集6.定义美食数据集二、注意力机制1.简介2.卷积块注意力网络——CBAM通道注意力模块CAM空间注意力模块SAM3.将通道、空间注意力模块合并三、基于卷积块注意力模块的ResNet-CBAM1.代码实现2.模型测试3.查看网络结构4.模型训练5.模型预测四、总结与升华个人简介 春节是一年当中最隆重、最盛大的节日,吃得最好的一餐可能就是年夜饭了,想想就很激动呢!随着新

zbp_12138的博客 1万+

【CSS】什么是BFC?BFC有什么作用?

BFC(block formatting context)块级格式化上下文,他是页面中的一块渲染区域,并且有一套属于自己的渲染规则,BFC 是一个独立的布局环境,具有BFC特性的元素可以看作是隔离的独立容器,容器里面的元素不会在布局上影响到外面的元素。:只需要把两个div放置不同BFC中,那这两个BFC的内容将不会互相干扰,将两个di分别放置container容器中,然后通过overflow:hidden触发BFC;:这是因为给子元素添加了浮动,使它脱离了文档流;:红色方框覆盖蓝色方块;

m0_61049675的博客 6579

电容DAC版图布局中的对称艺术:从二维共质心到误差最小化

本文深入探讨了电容DAC版图布局中的对称艺术,重点介绍了二维共质心技术如何有效最小化误差。通过分析系统误差和随机误差的来源,详细解析了共质心布局的核心技术及优化策略,包括梯度误差补偿和寄生参数平衡方法。实战案例展示了该技术在12位SAR ADC设计中的应用效果,为高精度集成电路设计提供了重要参考。

weixin_29300241的博客 583

基于YOLO26深度学习框架的人脸识别门禁系统的算法研究实现方法

本文研究了基于YOLO26深度学习框架的人脸识别门禁系统实现方法。系统采用YOLO26目标检测算法,通过CSPDarknet53主干网络、特征金字塔结构和注意力机制实现高效人脸检测。研究内容包括数据预处理、模型训练优化和身份验证等关键技术,使用迁移学习策略和CIoU损失函数提升检测精度。该系统可应用于智能安防场景,具有实时性强、识别准确的特点,为门禁管理提供了智能化解决方案。

一键难忘的博客 766

CSS函数-BFC介绍-原理详解

讲解BFC之前,我们先认识一下FC什么是FC呢?FC的全称是FormattingContext(格式化上下文),任何元素在标准流里面都是属于一个FC的;下面我们看看官方文档的解释大致意思是说任何元素在标准流里面都是属于一个FC的,可能是一个块级,可能是一个行内,但是不会同时属于这两个。块级元素的盒子都是属于BFC,行内元素的盒子都是属于IFC。块级元素的布局属于BlockFormattingContext(BFC)也就是blocklevelbox都是在BFC中布局的;...

m0_71485750的博客 705

DSP开发环境及工具之CCS

CCS( Code Composer Studio)是美国德州仪器(TI)公司的嵌入式处理器的开发环境,可以用于TI公司的各个系列处理器的软件开发和调试,如DSP,MCU,ARM等。CMD的专业名称叫链接器配置文件,是存放链接器的配置信息的,我们简称为命令文件。从其名称可以看出,该文件的作用是指明如何链接程序的。编辑完C语言设置,添加cmd文件之后,然后检查编译配置选项。主要的操作都是在这个窗口之间做相应的切换。

小柚子的博客 4311

CSS之BFC

BFC是一个独立的布局环境,可以理解为一个容器,在这个容器中按照一定规则进行物品摆放,并且不会影响其它环境中的物品。如果一个元素符合触发BFC的条件,则BFC中的元素布局不受外部影响。

从来无所求,所得皆惊喜! 1640

华为od统一考试B卷【食堂供餐】Python 实现

某公司员工食堂以盒饭方式供餐。为将员工取餐排队时间降低为0,食堂的供餐速度必须要足够快。现在需要根据以往员工取餐的统计信息,计算出一个刚好能达成排队时间为0的最低供餐速度。即,食堂在每个单位时间内必须至少做出多少份盒饭才能满足要求。

MISAYAONE的博客 8781

Keras深度学习实战(32)——基于LSTM预测股价

股价预测是时间序列预测中最具挑战性的问题之一,研究股价预测问题具有重要的理论意义和应用价值。针对循环神经网络在股价预测中存在的长期依赖等缺点,本文引入了长短时记忆神经网络以提高股价预测的效果。同时,我们把有关公司的新闻标题的文本数据作为模型的输入变量时,发现预测效果更好,因此我们可以把有关公司的新闻标题的文本数据作为一个有效的输入变量。最后,通过利用 Keras 实现了以上两个股价预测模型,并进行了性能分析和对比。

盼小辉丶的博客 1万+

CSS BFC原理和定位position

1.BFC概念 BFC为块级格式化上下文,具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。通俗一点来讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。 2.BFC特性及应用 只要元素满足下面任一条件即可触发 BFC 特性: body 根元素 浮动元素:float 除 none 以外的值 绝对定位元素:position (absolute、fixed) display 为

m0_51207602的博客 521

【异常】Cursor 编辑器 “Too many computers“ 报错排查与完整解决方案

该报错通常在启动Cursor、调用AI对话/代码补全核心功能时触发,会直接阻断编辑器AI能力的正常使用。

奶爸的编程之路,也就一周冷个三天 458

CSS进阶 —— 10 分钟理解 BFC 原理

未完待续

qq_32614411的博客 367

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[CSS]BFC原理

一、BFC 概念 BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述定位方案的普通流。 具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素(外面也不会影响里面),并且 BFC 具有普通容器所没有的一些特性。 二、触发BFC 只要元素满足下面任一条件即可触发 BFC 特性: html元素 浮动元素:float 除 none 以外的值 绝对定位元素:position (absolute、fixed) display 为

DaftJayee的博客 243

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

BFC原理在CSS中的应用

准确来说,BFC是CSS2.1时代的产物,它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用 何为“BFC”? BFC 即 Block Formatting Contexts (块级格式化上下文),它属于普通流。 具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一...

flying meng的菜鸟居 782

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CSS BFC原理及其应用 理解 IFC GFC FFC

BFC – Block Formatting Context 直译是–块级格式化上下文 它是一个独立渲染区域 只有Block-level box参与 它规定了内部如何布局 并且与这个区域外部毫不相干 解释 BFC 之前 先理解 Box Formatting Context的概念 Box–css布局的基本单位 直观来说 就是一个页面由很多个box组成的 元素的类型和display属性 决定了这个box的类型 不同类型的box 会参与不同的formatting context(一个决定如何渲染文档的容器) 因此

十二的博客 357

前端必经之路:CSS底层原理(剖析CSS权重、CSS布局模型和BFC等重要底层知识)

对于前端开发人员来说,最容易忽视的莫过于对css底层原理的学习了。在我们进行前端页面的开发过程中,始终离不开对css的使用。css的全称为层叠样式表(cascading style sheets),它能够对网页的布局、颜色、背景、宽高、字体等显示效果进行控制,让我们的网页变得更加漂亮美观。一开始接触css,你或许会感觉很容易,但随着开发经验的积累和学习的深入你会发现,css其实非常的复杂...

前端工程师 4276

CSS BFC深度解读:从原理到实战,解决90%布局难题

本文深入解析了CSS中的BFC(块级格式化上下文)机制,从原理到实战应用全面讲解。BFC是浏览器对块级元素的渲染规则,可看作一个独立布局区域,具有垂直排列、margin重叠、包含浮动和边界隔离等核心特性。文章详细介绍了7种触发BFC的方法,推荐优先使用display:flow-root这一无副作用的方案。重点阐述了BFC解决四大布局难题的实战场景:1)浮动塌陷问题;2)margin重叠问题;3)文字环绕浮动元素问题;4)定位元素超出父容器问题。通过具体代码示例,展示了如何利用BFC的特性解决这些常见布局痛点

linyuzhizou的博客 1041

CSS BFC原理和应用

CSS BFC原理和应用 文章目录CSS BFC原理和应用一.定义二.BFC渲染规则三.生成BFC四.BFC的一些应用1.防止margin重叠2.自适应2栏布局3.清除浮动五.总结 一.定义 BFC(Block Formattin Context) 直译过来就是块级格式化上下文,它是页面中一块独立渲染的区域,有一套渲染规则,只有Block-level box参与,也就是只有块级盒子参与,它规定了内部的Block-level Box如何布局,并且与这个区域外部无关 FC(Formattin Context)是

liuqiao0327的专栏 396

CSS定位之BFC背后的神奇原理

BFC已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用处(如清浮动,防止 margin 重叠等)。 什么是BFC 在解释 BFC 是什么之前,需要先介绍 Box Formatting Context的概念。BFC这个东西说常见的话你可能不觉得,但是你肯定会常用,也许你在用的时候也没想到BFC这东西。 css布局的基本单位 Box 是css布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的。元素的类型和 ...

办公研究所 265

CSS Float原理与BFC布局机制深度解析

CSS Float 是理解浏览器渲染引擎底层行为的关键入口,其本质并非脱离文档流,而是通过创建块级格式化上下文(BFC)影响元素定位与空间分配。从盒模型计算、margin 塌陷到文字环绕的 line box shortening,float 揭示了 CSS 布局中‘占位但不撑高’的核心逻辑。掌握 float 不仅能精准解决父容器塌陷、清除失效等经典问题,更是深入理解现代布局方案(如 Flexbox 的 order 控制、Grid 的显式网格、display:flow-root 触发 BFC)的基石。在兼容性

weixin_32349561的博客 229

【CSS】深入理解BFC原理及应用

BFC的定义Block Formatting Context,中文直译为块级格式上下文。BFC就是一种布局方式,在这种布局方式下,盒子们自所在的containing block顶部一个接一个垂直排列,水平方向上撑满整个宽度(除非内部盒子自己建立了新的BFC)。两个相邻的BFC之间的距离由margin决定。在同一个BFC内部,两个垂直方向相邻的块级元素的margin会发生“塌陷”。文档这里也间接指出...

独步的博客 475

【html/css】从清除浮动 讲解 BFC 原理及应用

CSS中清楚浮动 在CSS布局中float属性经常会被用到,但使用float属性后会使其在普通流中脱离父容器,让人很苦恼 1 浮动带来布局的便利,却也带来了新问题 1 <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <titl...

Umbrella_Um的博客 361

CSS BFC(块格式化上下文)原理详解

三种定位方案 在讲 BFC 之前,我们先来了解一下常见的定位方案,定位方案是控制元素的布局,有三种常见方案: 普通流 (normal flow) 在普通流中,元素按照其在 HTML 中的先后位置至上而下布局,在这个过程中,行内元素水平排列,直到当行被占满然后换行,块级元素则会被渲染为完整的一个新行,除非另外指定,否则所有元素默认都是普通流定位,也可以说,普通流中元素的位置由该元素在 HTML ...

Maggie的博客 410

(转)【CSS】深入理解BFC原理及应用

本文来源:https://www.jianshu.com/p/acf76871d259 BFC的定义### 先看W3C文档 In a block formatting context, boxes are laid out one after the other, vertically, beginning at the top of a containing block. The v...

qq_16546829的博客 306
上一篇: 如何用react+react-router+fetch+webpack2简单集成一个移动端项目
下一篇: 移动端页面适配方案
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值