我的编程空间,编程开发者的网络收藏夹
学习永远不晚

设置BFC功能及使用示例详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

设置BFC功能及使用示例详解

首先BFC是啥?

**官方描述:块格式化上下文(Block Formatting Context,BFC)是 Web 页面的可视 CSS 渲染的一部分,是块级盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

额......

是的,正常人看完还是不知道BFC是啥。

我用人类的语言尝试翻译一下:BFC就是一个就是一个容器。只不过这个容器里面元素怎么布局都不会影响外面的元素,外面的元素同样也影响不到这个盒子里面的元素。

好......

看完差不多你就该问了,???到底怎么影响了?

好嘛,不要急......

不设置BFC会对网页布局有怎么样的影响?

    .box1 {
      width: 400px;
      border: 10px solid pink;
    }
    .c-box1 {
      width: 200px;
      height: 200px;
      background-color: skyblue;
      float: left;
    }
    .c-box2 {
      width: 200px;
      height: 200px;
      background-color: blueviolet;
      float: left;
    }
    .box2 {
      width: 300px;
      height: 300px;
      background-color: red;
    }
<div class="box1">
    <div class="c-box1">
    </div>
    <div class="c-box2">
    </div>
</div>
<div class="box2"></div>

由于box1没有设置高度,box1里面的元素设置浮动后,无法将其撑起,从而影响到了外面的box2。那么如果box1是一个BFC的话,那么效果就会如下图一样:

给box1加上 overflow: hidden;没错这就是让一个容器形成BFC的一种方式。


 .box1 {
      width: 400px;
      border: 10px solid pink;
      overflow: hidden;
  }

啊?就就就......就这?那么你肯定想问这个BFC还有其他作用吗?

BFC还有啥作用?

- 解决盒子高度塌陷的问题

没错,也就是上面那种情况。

- 解决盒子margin塌陷的问题


.box1 {
      width: 100px;
      height: 100px;
      background-color: purple;
      margin-bottom: 30px;
 }
.box2 {
      width: 100px;
      height: 100px;
      background-color: red;
      margin-top: 10px;
 }
 <div class="box1"></div>
 <div class="box2"></div>

盒子垂直方向的margin是存在塌陷问题,box2设置的10px向上的margin没起作用。所以,把box1和box2变成一个BFC就可以解决这个问题。

- 可以防止元素被相邻的浮动盒子覆盖

    .box1 {
      float: left;
      width: 150px;
      height: 200px;
      background-color: purple;
     }
    .box2 {
      width: 200px;
      height: 200px;
      background-color: red;
    }
    <div class="box1"></div>
    <div class="box2"></div>

这种情况,除了可以box2设置overflow: hidden; 还可以设置float: left。

没错,上面一直用使用overflow: hidden来设置BFC,其实设置浮动也是一种形成BFC的方式。那么还有没有其他方式?答案是肯定的。

都有哪些方式来创建BFC

- 设置浮动,不管是左浮动还是右浮动都可以,float属性值不是none即可

- 设置定位,position的值不是static或者ralative

- 设置display,display的值是inline-block、flex或者inline-flex

- overflow值不为 visible,为 auto、scroll或者hidden

完结感想

有没有发现创建一个BFC容器其实大部分是为了解决浮动布局所引起的问题,另外一种说法就叫清除浮动。浮动布局常见于一些PC端门户网站,因为任职的公司主要是写移动端H5,常用的flex布局、定位这些无意间已经是在创建BFC,而且基本上没有用到浮动,所以对这块知识是比较模糊的。不过概念还是得捋清楚,面试好像挺喜欢问关于这个BFC的问题。

以上就是设置BFC功能及使用示例详解的详细内容,更多关于BFC 设置使用的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

设置BFC功能及使用示例详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

设置BFC功能及使用示例详解

这篇文章主要为大家介绍了设置BFC功能及使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-20

设置BFC功能及使用的方法是什么

这篇文章主要讲解了“设置BFC功能及使用的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“设置BFC功能及使用的方法是什么”吧!首先BFC是啥?官方描述:块格式化上下文(Block
2023-07-05

python Fabric使用详解及示例

abric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramik
2023-01-31

react中使用antd及immutable示例详解

这篇文章主要为大家介绍了react中使用antd及immutable示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-13

Three.js引入Cannon.js及使用示例详解

这篇文章主要为大家介绍了Three.js引入Cannon.js及使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-09

使用纯JavaScript封装一个消息提示条功能示例详解

这篇文章主要为大家介绍了使用纯JavaScript封装一个消息提示条功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-02

Android使用相机实现拍照存储及展示功能详解

这篇文章主要介绍了Android使用相机实现拍照存储及展示功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-01-04

LongAdder原理及创建使用示例详解

这篇文章主要为大家介绍了LongAdder原理及创建使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-13

Android中ViewFlipper的使用及设置动画效果实例详解

本文实例讲述了Android中ViewFlipper的使用及设置动画效果。分享给大家供大家参考,具体如下: 说到左右滑动,其实实现左右滑动的方式很多,有ViewPaer,自定义实现Viewgroup,gallery等都可以达到这种效果。这里
2022-06-06

vue项目网站全局置灰功能实现示例详解

这篇文章主要为大家介绍了vue项目网站全局置灰功能实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-21

织梦CMS的功能及使用方法详解

织梦CMS(DedeCMS)的功能及使用方法详解织梦CMS(DedeCMS)是一个开源的内容管理系统,广泛用于网站建设和内容管理。它提供了丰富的功能和灵活的定制性,适合各种类型的网站,如企业站、个人博客、电子商务等。在本文中,我们将详细介
织梦CMS的功能及使用方法详解
2024-03-13

Android 进度条使用详解及示例代码

在这里,总结一下loading进度条的使用简单总结一下。 一、说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验。 先来找图看看,做这个图完成不用图片就可以做
2022-06-06

详解Python定时器Timer的使用及示例

这篇文章主要介绍了详解Python定时器的使用及示例,Timer定时器源码实现,和自定义一个线程方式一样,都是继承Thread类,重写了run()方法,只是实现的功能是延时执行一个函数或方法,需要的朋友可以参考下
2023-05-19

编程热搜

目录