前言BFC在css的学习中是重要的但不易理解的概念 , BFC也牵扯了很多其他问题 , 如浮动、定位、盒模型等 , 因此弄懂BFC是很有必要的 。本文对BFC进行总结 , 希望对你有所帮助 。
BFC是什么?先看看MDN的定义:
块格式化上下文(Block Formatting Context , BFC) 是Web页面的可视化CSS渲染的一部分 , 是块盒子的布局过程发生的区域 , 也是浮动元素与其他元素交互的区域 。官方文档的说法很难理解 , 查阅多方资料后 , 得到以下的结论:
BFC(block formatting context)块级格式化上下文 , 它是页面中的一块渲染区域 , 并且有一套属于自己的渲染规则 , 它决定了元素如何对齐内容进行布局 , 以及与其他元素的关系和相互作用 。当涉及到可视化布局的时候 , BFC提供了一个环境 , html元素在这个环境中按照一定规则进行布局简短的总结:BFC是一个独立的布局环境 , BFC内部的元素布局与外部互不影响
BFC的布局规则
- 内部的Box会在垂直方向一个接着一个地放置 。
- Box垂直方向上的距离由margin决定 。属于同一个BFC的两个相邻的Box的margin会发生重叠 。
- 每个盒子的左外边框紧挨着包含块的左边框 , 即使浮动元素也是如此 。
- BFC的区域不会与float box重叠 。
- BFC就是页面上的一个隔离的独立容器 , 容器里面的子元素不会影响到外面的元素 , 反之亦然 。
- 计算BFC的高度时 , 浮动子元素也参与计算 。
元素或属性属性值根元素floatleft、rightpositionabsolute、fixedoverflowauto、scroll、hiddendisplayinline-block、table-cell
BFC可以解决哪些问题?
- 解决浮动元素令父元素高度坍塌的问题方法:给父元素开启BFC原理:计算BFC的高度时 , 浮动子元素也参与计算演示:
- 非浮动元素被浮动元素覆盖方法:给非浮动元素开启BFC原理:BFC的区域不会与float box重叠演示:
文章插图
- 两栏自适应布局方法:给固定栏设置固定宽度 , 给不固定栏开启BFC 。原理:BFC的区域不会与float box重叠演示:
文章插图
- 外边距垂直方向重合的问题方法:给上box或者下box任意一个包裹新的box并开启BFC原理:属于同一个BFC的两个相邻的Box的margin会发生重叠 。演示:
文章插图
结语以上就是本文关于BFC的全部内容 , 如果有不正确的地方 , 欢迎大家指正 。码字不易 , 且赞且珍惜 。
【一次弄懂css的BFC】
推荐阅读
- HTML、CSS和JS如何变成页面的?
- 甘肃这8个景点,去一次终身难忘
- 4S店的保养套餐到底值不值得买?很多人不清楚,一次性给你讲清楚
- 一周充一次,一次续航150km!这三款长续航电动车,跑外卖都在用
- 自动挡S挡怎么用?行驶中切换需要踩刹车吗?很多人一次都没用过
- 11个油耗是什么概念?
- 男女“第一次”的秘密
- CSS 中 display,visiblity及 overflow 的作用和区别
- 路由器到底要不要关?多久关一次?
- 记录一次真实的服务器被黑客入侵经历