前端-什么是BFC?BFC布局规则、触发条件、应用场景,收藏这篇就够了

CSS中的BFC详细讲解(易懂) 一个BFC区域只包含它的子元素,不包含其子元素的子元素。成为一个BFC区域要满足一定的条件。不同的BFC区域相互独立,互补影响。BFC是属于普通流的,我们可以把BFC看成页面的一块渲染区,他有自己的渲染规则,简单来说就是BFC可以看做元素的属性,当元素有了BFC这个属性,这个元素可以看做隔离了的容器,容器里面的元素不会在布局上影响到外面的元素。 阅读详情

什么是BFC?

BFC(Block Formatting Context)直译为“块级格式化范围”。它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。

简单来说,BFC就是一个独立不干扰外界也不受外界干扰的盒子。


布局规则

  • 内部的Box会在垂直方向,一个一个地布置。
  • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的Margin会发生重叠,也就是外边距塌陷。
  • 每个元素的margin box的左边, 与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。
  • BFC的区域不会与float box叠加。
  • BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然。
  • 计算BFC的高度时,浮动元素也参与计算。

触发条件

  • 根元素
  • float的值不为none
  • overflow的值不为visible
  • display的值为inline-block、table-cell、table-caption
  • position的值为absolute或fixed

应用场景

  • 解决margin叠加问题
    当盒子上下排布,上方盒子margin-bottom:100px;下面的盒子margin-top:100px;那么神奇的事情就发生了,两个盒子按照叠加来算的话,距离应该是200px,但是我们发现实际上两个margin值进行了叠加,只剩下100px。

代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1,
        .box2 {
            color: #f55;
            background-color: #fcc;
            width: 200px;
            line-height: 100px;
            text-align: center;
            margin: 100px;
        }
    </style>
</head>

<body>
    <div class="box1">盒子一</div>
    <div class="box2">盒子二</div>
</body>

</html>

效果:
在这里插入图片描述
从上图中,我们不难发现两个盒子的上下边距重叠了。

那么这个时候我们就可以触发BFC模式,给其中一个盒子添加一个父级元素;

代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1,
        .box2 {
            color: #f55;
            background-color: #fcc;
            width: 200px;
            line-height: 100px;
            text-align: center; 
            margin: 100px;
        }
        .main{
            overflow: hidden;
        }
    </style>
</head>

<body>
    <div class="box1">盒子一</div>
    <div class="main">
        <div class="box2">盒子二</div>
    </div>
</body>

</html>

效果:
在这里插入图片描述

由于盒子一和盒子二不属于同一个BFC,所以就不会发生margin重叠了。

  • 两栏布局
    元素的左外边距会触碰到包含块容器的做外边框,就算存在浮动也会如此,那么我们可以利用这种方式来一个两列布局,第一个盒子浮动,第二个盒子margin-left赋值;

代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            width: 100%;
            position: relative;
        }
        .aside{
            width: 100px;
            height: 150px;
            float: left;
            background-color: #f66;
        }
        .main{
            height: 200px;
            background-color: #fcc;
            overflow: hidden;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="aside"></div>
        <div class="main"></div>
    </div>
</body>

</html>

效果:
在这里插入图片描述

  • 清除浮动,计算BFC高度
    我们发现由于里面两个子元素浮动的关系,两个box已经脱离了父元素的包含块,父元素高度已经塌陷,我们需要让父元素包含两个box子元素,这样计算高度时,两个浮动子元素就会参与,所以我们要闭合浮动,触发父元素的BFC,例如overflow:hidden;

2025开年,AI技术打得火热,正在改变前端人的职业命运:

阿里云核心业务全部接入Agent体系;

字节跳动30%前端岗位要求大模型开发能力;

腾讯、京东、百度开放招聘技术岗,80%与AI相关……

大模型正在重构技术开发范式,传统CRUD开发模式正在被AI原生应用取代!

最残忍的是,业务面临转型,领导要求用RAG优化知识库检索,你不会;带AI团队,微调大模型要准备多少数据,你不懂;想转型大模型应用开发工程师等相关岗,没项目实操经验……这不是技术焦虑,而是职业生存危机!

曾经React、Vue等热门的开发框架,已不再是就业的金钥匙。如果认为会调用API就是懂大模型、能进行二次开发,那就大错特错了。制造、医疗、金融等各行业都在加速AI应用落地,未来企业更看重能用AI大模型技术重构业务流的技术人。

如今技术圈降薪裁员频频爆发,传统岗位大批缩水,相反AI相关技术岗疯狂扩招,薪资逆势上涨150%,大厂老板们甚至开出70-100W年薪,挖掘AI大模型人才!

在这里插入图片描述

不出1年 “有AI项目开发经验”或将成为前端人投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!

大模型目前在人工智能领域可以说正处于一种“炙手可热”的状态,吸引了很多人的关注和兴趣,也有很多新人小白想要学习入门大模型,那么,如何入门大模型呢?

下面给大家分享一份2025最新版的大模型学习路线,帮助新人小白更系统、更快速的学习大模型!

2025最新版优快云大礼包:《AGI大模型学习资源包》免费分享**

一、2025最新大模型学习路线

一个明确的学习路线可以帮助新人了解从哪里开始,按照什么顺序学习,以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。

我们把学习路线分成L1到L4四个阶段,一步步带你从入门到进阶,从理论到实战。

L1级别:AI大模型时代的华丽登场

L1阶段:我们会去了解大模型的基础知识,以及大模型在各个行业的应用和分析;学习理解大模型的核心原理,关键技术,以及大模型应用场景;通过理论原理结合多个项目实战,从提示工程基础到提示工程进阶,掌握Prompt提示工程。

L2级别:AI大模型RAG应用开发工程

L2阶段是我们的AI大模型RAG应用开发工程,我们会去学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

L3级别:大模型Agent应用架构进阶实践

L3阶段:大模型Agent应用架构进阶实现,我们会去学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造我们自己的Agent智能体;同时还可以学习到包括Coze、Dify在内的可视化工具的使用。

L4级别:大模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,我们会更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调;并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握;而L3 L4更多的是通过项目实战来掌握大模型的应用开发,针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。

二、大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)

三、大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。

四、大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

五、大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

2025最新版优快云大礼包:《AGI大模型学习资源包》免费分享

《前端面试题:BFC(块级格式化上下文)》 前端BFC完全指南:掌握CSS布局核心技巧。BFC(块级格式化上下文)是独立的CSS布局环境,常见触发方式包括display:flow-root、overflow:hidden等。BFC有四大核心特性:清除内部浮动、阻止外边距合并、隔离浮动元素和实现自适应布局。文章详细解析了BFC的应用场景和代码示例,包括解决高度塌陷、两栏布局实现等常见问题,并总结了面试常见考点和调试技巧。最后推荐使用display:flow-root作为最佳实践,为前端开发提供可靠的布局解决方案。 阅读详情

相关推荐

【高频考点精讲】BFC的形成条件和应用场景,为什么它能解决外边距合并?

想象一下,BFC就像是一个独立的王国,里面的元素遵循自己的规则,不受外界干扰。在CSS的世界里,BFC就是这样一个独立的渲染区域,它规定了内部块级盒子的布局方式,并且与外部环境隔离。用专业术语来说,BFC是Web页面可视化CSS渲染的一部分,是块级盒子布局发生的区域,也是浮动元素与其他元素交互的区域。BFC是CSS布局中一个强大但常被忽视的工具。理解它的形成条件和特性,能够帮助我们在面对各种布局问题时游刃有余。

全栈老李的博客 910

前端中的BFC是什么?

BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。 MDN给出的解释是:BFC是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。......

yigetutouzai的博客 1万+

前端CSS必知:BFC及其触发条件

文章目录1. bfc的理解(块级格式化上下文)2. 触发bfc的方式:3. bfc解决的问题:外边距合并,检测浮动高度,制作右侧自适应盒子4. bfc布局规则特性:5. 两栏布局6. 补充:7. 块元素高度不设或宽度不设的情况。 将本人好久之前的 云笔记 搬到博客上来,统一维护。 1. bfc的理解(块级格式化上下文) 可以看作是隔离了的独立容器,内部元素的布局,不会影响外部元素。 可通过css属性触发。 浮动元素产生了浮动流,块级元素看不到; 文本类属性的元素(inline),文本元素和产生了bfc的元

清颖的博客 7291

前端之BFC解释说明

1、BFC定义 2、BFC的触发条件 3、BFC的特性 4、BFC功能总结

leilei__66的博客 3462

BFC 深度解析:是什么、触发与应用场景都有哪些?

BFC是一个独立的布局区域,能帮助解决浮动清除、外边距重叠、元素重叠等问题。通过floatpositiondisplay和overflow等方式触发BFC。在实际项目中,BFC的应用可以简化布局,增强可维护性。

向着太阳迎着光 1220

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 566

前端-什么是BFC?BFC布局规则、触发条件、应用场景

什么是BFC? BFC(Block Formatting Context)直译为“块级格式化范围”。它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。 简单来说,BFC就是一个独立不干扰外界也不受外界干扰的盒子。 布局规则 内部的Box会在垂直方向,一个一个地布置。 Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的Margin会发生重叠,也就是外边距塌陷。 每个元素的margin box的左边,

乌药ice 5240

【第六届起重机创意大赛国一作品——资料分享】

文章目录前言一、比赛内容分析二、确定方案与作品模型1.方案简图2.作品模型三、电控部分控制思路单片机选择与资源分配拓展板的设计接线与走线代码分享总结

qq_19308801的博客 7782

BFC的布局规则以及触发条件

1.BFC的含义 : BlockFormattingContexts(BFC) 块级元素格式化上下文 它决定了块级元素如何对它的内容进行布局,以及与其他元素的关系和相互关系 块级元素:父级(是一个块元素) 内容:子元素(是一个块元素) 其他元素:与内容同级别的兄弟元素 相互作用:BFC里的元素与外面的元素不会发生影响 ...

qq_40301211的博客 1003

SAP S4 MM模块自动记账全流程解析:从评估范围到科目分组的实战配置

本文深入解析SAP S4 MM模块自动记账的全流程,从核心概念评估范围与评估控制入手,详细阐述了评估类、科目分组等关键配置的逻辑关系。通过实战配置步骤,指导如何建立从物料移动(如收货、发料)到自动生成准确财务凭证的完整体系,确保库存价值与总账实时同步,为企业构建可靠的财务业务一体化基石。

weixin_29313547的博客 423

从‘数字分身’到‘数字员工’:华为云MetaStudio如何重塑企业生产力?

本文探讨了华为云MetaStudio如何通过数字人技术重塑企业生产力,从数字分身到数字员工的转变。通过多模态AIGC技术,MetaStudio在金融、零售和制造业等多个行业实现高效应用,显著提升服务质量和运营效率。数字员工不仅降低成本,更成为企业增长的新引擎。

weixin_29083475的博客 450

BFC是什么

面试必会知识BFC 文章目录面试必会知识BFC前言一、什么是BFC二、BFC的特点三、BFC布局规则四、哪些元素会产生BFC五、在布局中BFC的应用场景总结 前言 本片文章主要总结了面试中常问的面试题BFC 首先了解一下什么是BFC 一、什么是BFC 1、BFC即 Block Formatting Contexts (块级格式化上下文), 是 W3C CSS2.1 规范中的一个概念。 2、BFC是指浏览器中创建了一个独立的渲染区域,并且拥有一套渲染规则,他决定了其子元素如何定位,以及与其他元素的相互关系

qq_43205326的博客 2万+

蓝牙EDR模式中GFSK调制如何过渡到DPSK调制

这两份文档片段揭示了蓝牙Modem设计中非常精深的部分。它的核心思想是:通过精心的脉冲形状设计和重叠,来保证幅度连续;通过在保护间隔内执行一套复杂的“相位平滑算法”(重复、斜率保持、寻找基准点、冻结),来保证相位连续。Figure 3-2 则是将这个思想用图形化的方式展现出来,说明了脉冲在时间轴上的对齐和叠加关系。这种设计确保了发射机能够严格符合蓝牙规范的要求,实现不同调制方式之间的平滑、无毛刺切换,从而保障了通信的可靠性和高效的频谱利用率。

m0_49540263的博客 283

BFC常见的几种规则以及如何触发?

可能很多小伙伴工作很长时间还是没有搞明白前端中说的这个BFC到底是个什么鬼?它在网页中又是怎么呈现呢?这里简单跟大家来聊一聊BFC常见的几种规则显示,废话不多说,开搞! 首先我们肯定要普及下,到底什么是BFC??? BFC(Block formatting context)直译为“块级格式化上下文”。它是一个独立的渲染区域,只有Block-level box(块)参与, 它规定了内部的Block-...

u012197150的博客 2649

【AI大模型应用开发】【RAG评估】0. 综述:一文了解RAG评估方法、工具与指标

本文主要总结了当前比较流行的RAG评估方法和指标。当前AI技术的快速发展,RAG和RAG评估是当前比较有前景的发展方向,不断有新的评估工具和理论被提出,让我们持续跟进,了解这些工具和理论,从而在使用时知道如何选择。

同学小张的博客 6827

lammps教程:官方自带eam_database程序拟合EAM势方法介绍

使用lammps模拟金属体系,最常用的势函数为eam、meam势。 对于大多数金属或者合金来说,可以从网上下载相对应的eam或meam势力场文件。 而对于一些新的合金材料,可能就找不到相对应的力场文件。 解决的方法有两种,一是采用混合势(pair_style hybrid),第二种方法是自己拟合势函数文件。 混合势的写法在前面文章中已经介绍过,本文介绍一种拟合EAM势的方法。 该方法是运行Xiaowang Zhou编写的一个拟合程序,该程序可自动生成所需要的合金势。 这个程序能够拟合的合金元素有: Cu,

lammps_jiayou的博客 4616

腾讯一面:谈谈你对BFC的理解

最近博主在腾讯面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,css是我们的必备技能,熟悉BFC是我们写好css的关键,博主在这给大家细细道来。

A_D_H_E_R_E的博客 1012

Unity 面试篇|(六)数据结构和算法篇 【全面总结 | 持续更新】

先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样遍历完后,堆中的10000个数就是所需的最大的10000个。桶排序是计数排序的升级版。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。这样处理就可以分别在每个文件的10^6个数据中找出最大的10000个数,合并到一起在再找出1000*10000中的最终的结果。

游戏开发小Y的博客 12万+

揭开 BFC 的神秘面纱:前端开发必知必会

BFC(Block Format Context)即块级格式化上下文,是 Web 前端开发中的一个重要概念。它是 CSS 中的一种布局规则,用于定义块级元素如何在页面上进行布局和渲染。BFC 可以看作是一个独立的容器,其中包含了一个或多个块级元素。在 BFC 内部,元素的布局和渲染遵循特定的规则,与外部的元素相互独立。这意味着 BFC 内部的元素不会与外部的元素产生布局冲突,并且可以独立地进行样式计算和渲染。BFC 的创建可以通过一些 CSS 属性来触发,例如floatpositionoverflow。

你若盛开,清风自来 2249

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝牙模块HM-10手册

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

为什么会有BFC?BFC是什么?如何触发?BFC解决了什么问题?

前端程序员在布局页面时,经常会遇到各种烦人的小问题,比如:每个元素都是一个盒子,盒子外的父元素应该不会受到盒内子的子元素影响,可是事实是这样的吗? 往往,我们会看到子元素浮动后,父元素高度没有了,两栏布局时右侧没有自适应,垂直方向上上下两个元素外边距不太对 从常理上来说,被包含在父元素里的元素是不会影响到父元素旁边的元素,但实际上并不总是如此,那么有没有什么办法能让里面的元素和外部真正隔离开呢?解...

精品小程序实战教程 3405

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

前端面试——什么是BFC?

BFC是块级格式化上下文,它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。 具有 BFC 特性的元素可以看作是一个被隔离的独立容器,容器里面的元素不会在布局上影响到外面的元素。可以把BFC看作是一个独立的容器,容器里的元素无论怎么动,都不会影响到容器外部的布局。 只要元素满足以下任意一个条件就可以触发 BFC 特性: 1)设置浮动元素float值(除none以外的值) 2)绝对定位元素(position为absolute或fixed) 3)displ

xt_123456的博客 2829

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一文带你吃透BFC

文章目录面试高出场率什么是BFC触发BFC的条件BFC的约束规则BFC可以解决的问题 面试高出场率 在前端的面试中,经常会遇到BFC的问题,比如:说说你对BFC的理解、你在项目中运用到的BFC、BFC是什么、BFC的作用是什么。。。。 很多同学很懵逼,不知道这个问题在问什么,在这里小编就给大家讲解一下关于BFC 小提示:这个问题重点是BFC是什么,BFC触发的条件有哪些,BFC可以干什么。这里我们可以试着讲解了一下Boostrap的清除浮动(display:table创建匿名table-cell间接触发B

商务合作欢迎私信我 3万+

前端BFC规则

什么是BFC? 首先要了解什么BFC: BFC 全称为 (Block Formatting Context) 块格式化上下文 它是一种功能,针对于 HTML文档 起作用,BFC 应该可以抽象成一个 独立的个体,就是正常的普通流布局规则,设置的样式是什么样的,就按正常的普通流布局的表现。 内部的子元素 不受外界的影响,外界的元素,也不受内部的元素的影响。各自独立生活在html这片空间下。 BFC触...

Kiri_To的博客 661

【前端基础系列】CSS篇-你知道BFC是什么吗?

BFC是前端面试中经常会被问到的一个知识点,今天就来带大家深入了解下什么是BFC以及它的作用。

Web面试那些事儿的博客 1047

BFC及应用场景

前端面试题 css面试题 全栈面试题 基础面试题

thewar196的博客 717
上一篇: 97年五年前端经验失业中~
下一篇: 前端开发9年,失业!找工作中
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值