当前位置: 首页 > news >正文

CSS之BFC

BFC概念

BFC(Block Formatting Context)即块级格式化上下文,是Web页面的可视CSS渲染的一部分。它是一个独立的渲染区域,让其中的元素在布局上与外部的元素互不影响。简单来说,BFC提供了一个环境,允许内部的块级元素在垂直方向上一个接一个地放置,同时,BFC也会影响外部的布局特性,比如防止外边距折叠。

创建BFC方式

  • 根html元素。
  • 浮动元素(元素的float不是none)。
  • 绝对定位元素(元素的position为absolute或fixed)。
  • 行内块元素(元素的display为inline-block)。
  • 表格的表单元素(元素的display为table、table-cell、table-caption)。
  • overflow的值不为visible的块元素。
  • 弹性盒(display为flex或inline-flex元素的直接子元素)。
  • 网格布局(display为grid或inline-grid元素的直接子元素)。

BFC作用

  • 防止外边距折叠(Margin Collapse):在BFC中,相邻块级盒子的上下外边距会发生重叠,而BFC可以避免外边距折叠。
  • 清除浮动(Clearing Floats):BFC可以包含浮动元素,防止父容器高度塌陷。
  • 隔离元素:在BFC中,元素的布局不会影响外部元素的布局。

BFC使用示例

  1. 防止外边距折叠示例

HTML:

 <div class="container"><div class="box ac">A</div></div><div class="box bc">B</div>

CSS:

	  .box {width: 100px;height: 100px;color: white;}.ac {background: red;margin-bottom: 20px;}.bc {background: blue;margin-top: 20px;}.container {overflow: hidden;}

在这里插入图片描述
防止从属于同一个BFC的相邻块级盒模型外边距与外部块级盒模型外边距的折叠。

  1. 包含浮动元素

HTML:

<div class="parent"><div class="float-child">浮动元素</div>
</div>

CSS:

.parent {border: 2px solid #000;overflow: hidden; /* 触发BFC */
}.float-child {float: left;width: 100px;height: 100px;background-color: #ff0000;
}

在这里插入图片描述
给.parent设置overflow: hidden;触发BFC,确保父容器能够包含其内的浮动元素。这解决了常见的浮动导致的父容器高度塌陷问题。

如果不设置.parent为overflow: hidden;则会出现高度塌陷

在这里插入图片描述

http://www.lryc.cn/news/300079.html

相关文章:

  • 2024 年合并 PDF 文件的免费 PDF 合并软件榜单
  • Python教程56:海龟画图turtle画kitty猫
  • c入门第十篇——指针入门
  • pwn学习笔记(3)ret2syscall
  • React18原理: 生命周期中特别注意事项
  • 【C语言】Linux内核bind系统调用代码
  • Ubuntu下Anaconda+PyCharm搭建PyTorch环境
  • 酷开科技荣获“消费者服务之星”称号后的未来展望
  • UVA1449 Dominating Patterns 题解
  • 【C语言】数据结构#实现堆
  • AES加密中的CBC和ECB
  • 【C++】类和对象(四)
  • XGB-5: DART Booster
  • HiveSQL——不使用union all的情况下进行列转行
  • Python环境下基于指数退化模型和LSTM自编码器的轴承剩余寿命预测
  • 无人机竞赛视觉算法开发流程开源计划(询问大家意见)
  • DMA直接内存访问,STM32实现高速数据传输使用配置
  • Web安全研究(六)
  • python3 中try 异常调试 raise 异常抛出
  • Java中的序列化是什么?如何实现对象的序列化和反序列化?请解释Serializable接口的作用是什么?请解释transient关键字的作用是什么?为什么会使用它?
  • 二维差分---三维差分算法笔记
  • D. Divisible Pairs
  • 【教程】Kotlin语言学习笔记(二)——数据类型(持续更新)
  • react 插槽
  • Linux运用fork函数创建进程
  • Pytest测试技巧之Fixture:模块化管理测试数据
  • 设计模式-职责链模式Chain of Responsibility
  • 书生浦语大模型实战营-课程作业(3)
  • 考研英语单词25
  • 计算机网络——08应用层原理