博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你了解BFC吗?
阅读量:6342 次
发布时间:2019-06-22

本文共 916 字,大约阅读时间需要 3 分钟。

BFC 概念

      BFC 即 Block Formatting Contexts (块级格式化上下文) ,是 W3C CSS2.1 规范中的一个概念。它是页面中的一块渲染区域,并且有一套渲染规则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。       具有 BFC 特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且 BFC 具有普通容器所没有的一些特性。

触发 BFC的条件

只要元素满足下面任一条件即可触发 BFC 特性:

  • body 根元素
  • 浮动元素:float 除 none 以外的值
  • 绝对定位元素:position (absolute、fixed)
  • display 为 inline-block、table-cells、flex
  • overflow 除了 visible 以外的值 (hidden、auto、scroll)
  • BFC 相关应用

      其实我们日常开发中经常用到BFC,只是我们不知道这就是所谓的BFC

  • 同一个 BFC 下外边距会发生折叠
     
复制代码

效果如下:

可以看到两个div的上下间距发生了重叠,这是因为两个 div 元素都处于同一个 BFC 容器下 (这里指 body 元素)

如果想要避免外边距的重叠,可以将其放在不同的 BFC 容器中。

    
复制代码

效果如下:

  • BFC 可以包含浮动的元素(清除浮动)

      通常情况下浮动的元素会脱离普通文档流

复制代码

效果如下:

可以看到浮动的div会脱离普通文档流

如果想要清除浮动不脱离文档流,可以将其放在 BFC 容器中。可以做如下改动

复制代码

效果如下图所示已经包含浮动的元素(清除浮动) :

  • 自适应两栏布局
复制代码

效果图如下

以上三点是BFC主要的日常应用需要谨记!!!

转载于:https://juejin.im/post/5b0382e051882567203461ee

你可能感兴趣的文章
在uwp仿制WPF的Window
查看>>
bootstrap随笔点击增加
查看>>
oracle 中proc和oci操作对缓存不同处理
查看>>
[LeetCode] Spiral Matrix 解题报告
查看>>
60906磁悬浮动力系统应用研究与模型搭建
查看>>
指纹获取 Fingerprint2
查看>>
SB阿里云,windows2012r2无法安装.net3.5
查看>>
函数的继承
查看>>
黑盒测试用例设计方法&理论结合实际 -> 场景法
查看>>
快速打开软件以及文件夹
查看>>
CSS选择符
查看>>
剑指offer---19--***-顺时针打印矩阵
查看>>
关于数组随机不重复的思路
查看>>
oracle赋值问题(将同一表中某一字段赋值给另外一个字段的语句)
查看>>
Windows 安装 Jenkins 2.6
查看>>
计算一个点是否在一个区域中
查看>>
正则表达式
查看>>
淘宝面试题:有一个一亿节点的树,现在已知两个点,找这两个点的共同的祖先。...
查看>>
EntityFramework 6.x多个上下文迁移实现分布式事务
查看>>
高版本SQL备份在低版本SQL还原问题
查看>>