前端中的BFC是什么?

这篇具有很好参考价值的文章主要介绍了前端中的BFC是什么?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前端中的BFC是什么?

BFC的概念

BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域,只有Block-level box参与, 它规定了内部的Block-level Box如何布局,并且与这个区域外部毫不相干。

MDN给出的解释是:BFC是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

相信这样讲还是很抽象,下面用代码来实现一下,就能明白了

产生BFC的方式

  • float的值不为none。
  • position的值不为static或者relative。
  • display的值是inline-block、table-cell、flex、table-caption或者inline-flex
  • overflow的值不为visible

BFC的规则

  • BFC就是一个块级元素,块级元素会在垂直方向一个接一个的排列
  • BFC就是页面中的一个隔离的独立容器,容器里的标签不会影响到外部标签
  • 垂直方向的距离由margin决定, 属于同一个BFC的两个相邻的标签外边距会发生重叠
  • 计算BFC的高度时,浮动元素也参与计算

BFC的作用

1. 解决高度坍塌

在一个没有高度的div内,嵌套了一个设置浮动的div,会出现下面的情况

前端中的BFC是什么?

外层div出现了高度坍塌的现象,这时候给它加上一个overflow: hidden的css属性,就产生了BFC

前端中的BFC是什么?

就解决高度坍塌的问题了

2. 解决margin重叠问题

前端中的BFC是什么?

 里面的三个div都设置了margin: 10px,但是网页中的相邻的div之间距离也是10px,原因就是同一个BFC容器内的兄弟元素会产生垂直方向上的margin重叠,,会取两个相邻元素之间最大的marign作为之间的间隔。

可以通过给每个子元素包裹一个BFC容器来解决。

前端中的BFC是什么?

 3. 阻止元素被浮动元素覆盖

有两个同级的div元素,前面div的设置了左浮动,会覆盖住后面的元素

前端中的BFC是什么?

 这时让未设置浮动的元素产生BFC,就可以避免被浮动元素覆盖

前端中的BFC是什么?

结语

块格式化上下文对浮动定位和清除浮动都很重要。浮动定位和清除浮动时只会应用于同一个BFC内的元素。浮动不会影响其它BFC中元素的布局,而清除浮动只能清除同一BFC中在它前面的元素的浮动。外边距折叠也只会发生在属于同一BFC的块级元素之间。

以上就是BFC的分析,BFC的概念比较抽象,但通过实例分析应该能够更好地理解BFC。在实际中,利用BFC可以闭合浮动。同时,由于BFC的隔离作用,可以利用BFC包含一个元素,防止这个元素与BFC外的元素发生margin collapse。

参考

   https://blog.csdn.net/weixin_44165167/article/details/115617978文章来源地址https://www.toymoban.com/news/detail-407766.html

到了这里,关于前端中的BFC是什么?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 了解CSS中的BFC以及用法

    目录 一 常见的定位方案 1. 普通流(所有元素默认为普通流的定位) 2. 浮动 3. 绝对定位 二  BFC  1. 定义 2. 触发条件 3. 作用 (1) 避免外边距重叠 ​(2)清除浮动 (3) 阻止元素被浮动元素覆盖         首先,先了解一下常见的定位方案。有三种:普通流(默认)、浮

    2024年04月12日
    浏览(33)
  • 记录--为什么没有人能讲清楚 BFC?

    CSS 规范(英文) | 中文翻译 浮动,绝对定位的元素,非块盒的块容器(例如inline-blocks,table-cells和table-captions),以及’overflow’不为’visible’的块盒(当该值已被传播到视口时除外(except when that value has been propagated to the viewport))会为其内容建立新的块格式化上下文 在一个

    2024年02月05日
    浏览(48)
  • Go语言Context (ctx)的基础概念与用法

    ctx 字面意思 上下文 ,是golang中特有的一种语法,几乎每一个程序中都会通篇传递着一个 ctx 。而一些框架又对其进行二次封装,诸如Gin框架中的 c *gin.Context 。因此此次进行 ctx 的学习并记录。 这是 ctx 的接口部分,其提供了一个接口及许多函数、结构体(如图)。 其通过

    2024年01月22日
    浏览(41)
  • 什么是虚拟DOM(Virtual DOM)?它在前端框架中的作用是什么?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月07日
    浏览(49)
  • web前端开发中的响应式布局设计是什么意思?

    响应式布局是指网页设计和开发中的一种技术方法,旨在使网页能够在不同大小的屏幕和设备上都能良好地显示和交互。这种方法使得网页可以自动适应不同的屏幕尺寸,包括桌面电脑、平板电脑和手机等。 在Web前端开发中,响应式布局通常使用CSS(层叠样式表)来实现。以

    2024年02月11日
    浏览(44)
  • Go 语言 context 都能做什么?

    原文链接: Go 语言 context 都能做什么? 很多 Go 项目的源码,在读的过程中会发现一个很常见的参数 ctx ,而且基本都是作为函数的第一个参数。 为什么要这么写呢?这个参数到底有什么用呢?带着这样的疑问,我研究了这个参数背后的故事。 开局一张图: 核心是 Context 接

    2024年02月11日
    浏览(42)
  • React 中的 context使用方法

    什么是上下文? 全局变量就是全局的上下文,全局都可以访问到它;上下文就是你运行一段代码,所要知道的所有变量。 三大件 React.createContext(): context 的初始化 provider: 提供context的父组件,用来包裹需要context的子组件的 子组件获得context的方法 代码如5:

    2024年02月15日
    浏览(38)
  • gin 框架中的 gin.Context

    Context 是 gin 中最重要的部分。 例如,它允许我们在中间件之间传递变量、管理流程、验证请求的 JSON 并呈现 JSON 响应。 Context 中封装了原生的 Go HTTP 请求和响应对象,同时还提供了一些方法,用于获取请求和响应的信息、设置响应头、设置响应状态码等操作。 在 Gin 中,C

    2024年02月14日
    浏览(46)
  • 什么是层叠上下文(stacking context)?它是如何形成的?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月12日
    浏览(40)
  • ansible-playbook中的block模块,如果中途失败了,怎样退出整个playbook

    在Ansible中,如果使用了block模块,并且希望在其中的任务失败时退出整个playbook,可以通过设置block模块的属性`rescue`为`yes`来实现。 以下是一个示例的playbook,其中包含一个block模块: ```yaml - name: Example playbook   hosts: all   tasks:     - name: Block example       block:         - nam

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包