BFC的全称为Block Formatting Context,即块级格式化上下文。它是CSS中的一种渲染模式,是一个独立的渲染区域,BFC中的元素在布局时只会考虑位于同一BFC中的元素。
浅谈CSS潜藏着的BFC - 完整攻略
什么是BFC
BFC的全称为Block Formatting Context,即块级格式化上下文。它是CSS中的一种渲染模式,是一个独立的渲染区域,BFC中的元素在布局时只会考虑位于同一BFC中的元素。
BFC的原理
BFC的形成有以下几种情况:
- 根元素或包含它的元素。
- 设置
float
、position: absolute/fixed
。 display: inline-block/table-cell/table-caption/flex/grid
。overflow
值不为visible
(例如overflow: auto/hidden/scroll
)。
BFC的形成可以解决如下问题:
- 清除浮动。在BFC中的元素会计算到浮动元素的高度,从而避免破坏布局。
- 防止margin重叠。在BFC中的相邻元素的margin不会重叠。
BFC的示例
示例一:清除浮动
<div class="parent">
<div class="float-left"></div>
<div class="float-left"></div>
<div class="clearfix"></div>
</div>
.parent {
border: 1px solid #000;
overflow: hidden; /* 触发BFC,清除浮动 */
}
.float-left {
float: left;
width: 50px;
height: 50px;
background-color: red;
}
.clearfix {
clear: both;
}
在父元素 .parent
上设置 overflow: hidden
,可以触发BFC,从而清除浮动。
示例二:防止margin重叠
<div class="parent">
<div class="child"></div>
<div class="child"></div>
</div>
.parent {
border: 1px solid #000;
overflow: hidden;
}
.child {
margin: 10px;
width: 50px;
height: 50px;
background-color: red;
}
在父元素 .parent
上设置 overflow: hidden
,可以触发BFC,从而防止子元素 .child
的margin重叠。
总结
BFC是CSS中的一个很重要的概念,可以解决很多布局问题,例如清除浮动、防止margin重叠等。在实际开发中,需要灵活运用BFC,特别是清除浮动这个场景,应该尽量使用现代的解决方案,例如 flex 和 grid。
沃梦达教程
本文标题为:浅谈CSS潜藏着的BFC


基础教程推荐
猜你喜欢
- Django操作cookie的实现 2024-04-15
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- Loaders.css免费开源加载动画框架介绍 2025-01-23
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-29
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 2024-01-08
- 创建Vue3.0需要安装哪些脚手架 2025-01-16
- JSONObject与JSONArray使用方法解析 2024-02-07
- Bootstrap学习笔记之css组件(3) 2024-01-22
- 纯css实现漂亮又健壮的tooltip的方法 2024-01-23
- html5视频如何嵌入到网页(视频代码) 2025-01-22