其实在一开始我是没有BFC的这个概念的,只是知道在浮动过后,后续的元素如果出现问题,就做我们常说的:overflow:hidden.其中的原因还是不甚了解.不是说以前老师没有讲解过,而是以前根本就没有理解很深,就知道用.在这个星期白老师又重新给我们讲解了一遍,虽说不是非常系统,但是讲解的非常简单易懂.

  那么那些情况我们会遇到问题,那我们怎么用BFC解决呢?

  首先我们需要了解什么是BFC,BFC就是常说的 "Block Formatting Context",就是"块级格式化上下文",什么意思你可能会问.具体的什么意思我也不是很理解,就是把一个区域单独的隔离出来,里面的子元素和外面的元素互不影响.

  好了,我们还是来看看哪些情况我们需要用到BFC,一般说来,下面的四种情况会形成BFC:

  • float:left|right
  • position:absolute|fixed
  • display: table-cell|table-caption|inline-block
  • overflow: hidden|scroll|auto

  1.在浮动的时候遇到的问题,我们未设置父元素的高度,而在其子元素浮动的时候,会造成父元素塌陷.

  

  非常尴尬,但是我们可以用overflow:hidden来解决,当然我们也可以设置父元素的高度;

  2.边距折叠的问题:

  比如我们在平常经常会设置一个div,然后再包裹一个div,机智的你可能会发现,设置子元素的margin-top,父元素会跟着移动,以前的我理解为浏览器把两个div的上边框看成一个边框了,所以里面动,外面也跟着动,一般我的解决办法是:父元素padding:1px,但时这样会造成一定的布局变形.当然我们形成一个BFC就能完美的解决问题:overflow:hidden;还有就是,两个同级的div在上一个div设置margin-bottom:50px,而设置下一个div的margin-top:60px;机智的你又会发现:他们之间的间距并不是50+60=110,奇了怪了,再看看的确不是啊,在量量60px,这就是我们所说的边距折叠的问题,简单地方法就是在这两个div的外面在套一个div,设置overfl:hidden就解决了,注意我们所说的形成BFC,指的是其内部的每个子元素,而不是其本身,所以我们要在他的外面去套div的原因.

  平时我们所遇到的大部分情况如上所示,当然还有很多其他情况,由于我们(我)用的比较少,就不一一列粗来了.通过以上的栗子我们可以看出:BFC的作用还是大大的,可以解决我们平时觉得匪夷所思的问题,当然除了BFC还有IFC,GFC,FFC,大家若是有兴趣可以参考张鑫旭大大的文章.

布局复习---BFC的更多相关文章

  1. CSS布局基础——BFC

    what's BFC? 第一次看到这个名词,我是拒绝的,css什么时候还有这个东西?于是迫不及待的google了一下,才发现原来它无时无刻不在我们的css当中,只不过它并不是一个属性,不需要我们平常使 ...

  2. CSS3与页面布局学习总结(四)——页面布局大全BFC、定位、浮动、7种垂直居中方法

    目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...

  3. 页面布局之BFC 微微有点坑

    一.什么是BFC: 在解释 BFC 是什么之前,需要先介绍 Box.Formatting Context的概念. Box: CSS布局的基本单位 Box 是 CSS 布局的对象和基本单位, 直观点来说 ...

  4. 样式布局与 BFC

    一.几类视图 内联视图:inline 单行 块级视图:block 换行,有高度 行内块级视图:inline-block 单行,有高度 二.几类布局 块级布局 换行,通过设置 margin 水平居中 & ...

  5. 布局之BFC

    BFC 什么是BFC,在哪里需要用到BFC,BFC有什么规则?生成BFC有什么条件?这几个问题,我将为大家一一解释,下面我们进入正题. BFC(Block formatting context)直译为 ...

  6. 分析CSS布局中BFC

    1.什么是BFC BFC(Block Formatting Context,块级元素格式化上下文)是 W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和 ...

  7. CSS布局基础--BFC

    1,什么是BFC BFC(Block Formatting Context)块级格式化上下文,它就是一个环境,HTML元素在这个环境中按照一定规则进行布局.一个环境中的元素不会影响到其他环境中的布局. ...

  8. CSS布局之BFC和IFC

    本文为原创,转载请注明出处: cnzt       文章:cnzt-p http://www.cnblogs.com/zt-blog/p/6708358.html <这是一篇css2-3的布局规 ...

  9. CSS 布局和 BFC

    什么是 BFC 在一个Web页面的CSS渲染中,块级格式化上下文 (Block Fromatting Context)是按照块级盒子布局的.W3C对BFC的定义如下:浮动元素和绝对定位元素,非块级盒子 ...

随机推荐

  1. VMware Horizon Client剪贴板异常问题解决

    接到用户反馈现象是:登录ERP系统操作是,无法复制粘贴本地电脑上的数据. 处理过程: 1.在域控服务器上建立独立的Horizon Computer OU,把所有RDS加入在改OU中 2.针对Horiz ...

  2. C# 各个版本特性总结

    历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECM ...

  3. UVA - 11996 Jewel Magic (Treap+二分哈希)

    维护一个01序列,一共四种操作: 1.插入一个数 2.删除一个数 3.反转一个区间 4.查询两个后缀的LCP 用Splay或者Treap都可以做,维护哈希值,二分求LCP即可. 注意反转序列的时候序列 ...

  4. Array、Set、Map、Object学习总结

    Array和Set对比 都是一个存储多值的容器,两者可以互相转换,但是在使用场景上有区别.如下: Array的indexOf方法比Set的has方法效率低下 Set不含有重复值(可以利用这个特性实现对 ...

  5. Fiddler debug 拦截文件

    前言 前端每次本地调试的需要重新build文件,而且如果当前文件是在另外一个项目中使用,则还需要拷贝到另外一个项目下面.这个工作很耗时.如果使用替换包,可以节省很多时间,也便于开发. 解决方案 用Fi ...

  6. js array map() 函数的简单使用

    语法: array.map(function(currentValue,index,arr), thisValue) currentValue:必须.当前元素的值 index:可选.当前元素的索引值 ...

  7. jquery attribute选择器 语法

    jquery attribute选择器 语法 作用:[attribute] 选择每个带有指定属性的元素.可以选取带有任何属性的元素(对于指定的属性没有限制). 语法:$("[attribut ...

  8. Android 一般动画animation和属性动画animator

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  9. fiddler(一)、下载及安装

    fiddler 官网地址:https://www.telerik.com/fiddler 进入页面后点击 Free download 进入下载页面,填写用途,邮箱和国家等信息后,点击Download ...

  10. [LOJ6433][PKUSC2018]最大前缀和:状压DP

    分析 我们让每个数列在第一个取到最大前缀和的位置被统计到. 假设一个数列在\(pos\)处第一次取到最大前缀和,分析性质,有: 下标在\([1,pos]\)之间的数形成的数列的每个后缀和(不包括整个数 ...