首页 > 其他分享 >聊聊css中的BFC

聊聊css中的BFC

时间:2024-04-22 16:48:34浏览次数:27  
标签:BFC 浮动 布局 元素 高度 CSS 聊聊 css

BFC,即 Block Formatting Context(块级格式化上下文),是 CSS 布局的一部分,用于确定块级盒子的布局及其在页面上的排列方式。BFC 是一个独立的布局环境,其中的元素布局不受外部元素的影响,并且它们之间的布局不会互相影响。

在一个 BFC 中,每个盒子按照垂直方向一个接一个地放置。具体来说,BFC 具有以下特性:

  1. 垂直方向的布局:在 BFC 中,盒子是从顶部到底部依次放置的,它们的边框之间不存在重叠。这意味着,一个元素的 margin 可能会影响到其相邻元素,但不会影响到其父元素外部的其他元素。

  2. 阻止外部元素影响内部元素:在 BFC 中,一个元素的布局不会受到外部元素的影响。这意味着,浮动元素不会影响到非 BFC 元素的布局,也不会被非 BFC 元素的内容环绕。

  3. 计算高度时考虑浮动元素:在 BFC 中,浮动元素的高度会被计算在内,因此 BFC 的高度会根据其所有子元素的高度来计算,包括浮动元素的高度。

  4. 阻止外边距的合并:在 BFC 中,垂直相邻的两个盒子的外边距不会发生合并,它们之间会有一个间隔,这个间隔的大小由两个盒子的外边距中的较大值决定。

BFC 的形成条件有多种,包括根元素、浮动元素、绝对定位元素、display 属性值为 inline-block、flex 或 grid 的元素等。你可以通过给元素设置一些 CSS 属性,比如 overflow: autofloat: leftposition: absolute 等来触发 BFC。

BFC 的概念在 CSS 布局中具有重要作用,特别是在解决一些布局问题时,通过创建 BFC 可以改变元素的布局行为,从而达到我们想要的效果。

BFC(块级格式化上下文)在 CSS 布局中有多种用途,可以解决各种布局问题,提供更灵活的布局控制。以下是一些 BFC 的常见用途:

  1. 清除浮动:在包含浮动元素的容器中创建 BFC 可以清除浮动,使得容器的高度被浮动元素撑开,而不会导致父容器塌陷。通过在包含浮动元素的容器上应用 overflow: autooverflow: hidden 等属性,可以触发 BFC,并清除浮动。

  2. 避免外边距合并:在 BFC 中,相邻块级元素的外边距不会合并,这可以避免一些外边距塌陷的问题,使得页面布局更加可控。

  3. 解决布局问题:通过创建 BFC,可以改变元素的布局行为,从而解决一些布局问题。比如,可以使用 BFC 来创建一个自适应两栏布局,或者避免元素被浮动元素覆盖等。

  4. 防止文本环绕:在 BFC 中,浮动元素不会被其他元素的文本环绕,这可以用于创建一些特殊布局,比如在文本内容中插入浮动元素,而不希望文本被浮动元素覆盖。

  5. 计算高度:在 BFC 中,浮动元素的高度会被计算在内,从而可以使得包含浮动元素的容器的高度被撑开,这有助于实现等高列布局等效果。

总的来说,BFC 提供了一种独立的布局环境,可以解决各种布局问题,提高页面布局的灵活性和可控性。通过合理地利用 BFC,可以更好地控制页面布局,避免一些常见的布局问题。

标签:BFC,浮动,布局,元素,高度,CSS,聊聊,css
From: https://www.cnblogs.com/byj666/p/18150884

相关文章

  • 持续性学习-Day15(前端基础CSS3)
    参考教学视频:秦疆1.什么是CSSCascadingStyleSheet层叠样式表CSS3圆角、阴影、动画...浏览器兼容性CSS优势:内容和表现分离网页结构表现统一,可以实现复用样式十分的丰富建议使用独立html的css文件利用SEO,容易被搜索引擎收录2.入门<linkrel="styleshee......
  • 文字动态地变大变小(CSS)
    要在CSS中动态地改变文字大小,可以使用@keyframes规则创建一个动画,然后将该动画应用到需要改变大小的文本元素上。以下是一个示例,演示如何使文字大小在一定时间内从小变大,然后再变小:css部分:/*定义一个名为resizeText的动画*/@keyframesresizeText{0%{font-si......
  • CSS之定位Position
    前言之前在《CSS之浮动》中,我当时是想一起说说定位的,因为我在很多地方看到有把float和position放在一起讲的,说它们的一些属性值可以使元素脱离文档流,但是没想到在准备内容的时候,发现浮动的内容有点多,就先把浮动的内容单独整了一篇。本文就继续来说说定位吧。基本信息Name:p......
  • 聊聊从大模型来看NLP解决方案之UIE
    转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote概述自然语言处理NLP任务的实现,相比较以前基于传统机器学习算法实现方法,现在越来越集中使用大模型来实现。通过——数据标注-模型训练-模型调优/微调-模型压缩-预测部署的大模型流程,覆盖NLP多场景满足开发者落地实现与......
  • Django不显示CSS的效果(基于Django模板的静态资源配置问题)
    在搞毕设过程中,习惯起见我直接在网上找了现成的前端设计页面,如图:这种前端项目的结构一般是一个login.html、一个style.css、一个背景图片即可搞定的,直接点击html,浏览器中打开的就是上图所示的界面效果。但是:当我把前端所有文件扔进DjangoApp的templates文件夹后,运行项目的效果......
  • css3多行文本多行文本缩略点击更多展开显示全部
    比如我要实现如下效果:数据集名称展示一行,超出自动省略,末尾增加编辑icon。点击编辑的icon,换成input输入框数据集描述最多展示三行,超出自动省略。末尾增加编辑icon。点击编辑的icon,换成textarea输入框展示一行省略+icon实现单行省略实现,无非是这样<div class="flex-row al......
  • tailwindcss
    TailwindCSS是一个为快速创建定制化UI组件而设计的实用型框架。与其他CSS框架或库不同,TailwindCSS组件没有预先设置好样式。可以使用Tailwind的低级实用类来为CSS元素设置样式,如margin、flex、color等。自从2017年发布以来,TailwindCSS越来越受欢迎,因为它允许开......
  • css 动画之无缝跑马灯
    <divclass="target-top"style="overflow:hidden"><divclass="target-img"><divv-for="itemintargetFors":key="item.id">...//内容不重要</div></div>......
  • Python Flask+Pandas读取excel显示到html网页: CSS控制表格样式、表头文字居中
    前言全局说明CSS控制表格样式一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563Pandas安装https://www.cnblogs.com/wutou/p/17811839.htmlPandas官方API说明https://pand......
  • CSS 滚动驱动动画终于正式支持了
    在最新的Chrome115中,令人无比期待的CSS滚动驱动动画(CSSscroll-drivenanimations)终于正式支持了\~有了它,几乎以前任何需要JS监听滚动的交互都可以纯CSS实现了,就是这么强大,一起了解一下吧温馨提示:文章略长,建议收藏后反复查阅一、快速入门CSS滚动驱动动画直接介绍 API......