美文网首页
BFC应用详解

BFC应用详解

作者: 饥人谷_LEO | 来源:发表于2017-08-12 12:25 被阅读0次

BFC是什么?BFC如何生成?

1.BFC(Block Formatting Context )块级格式化上下文。BFC是CSS里的一种规则。
2.生成BFC的方法:1)display:flex,display:inline-block,dispaly:inline-flex,display:table-cell,display:table-caption。 这几种中的任意一种。2)position为fixed或absolute。 3)overflow不为visible。4)本质上根元素也会生成BFC。

BFC作用

  • 当同一个BFC中的两个盒子同时具有相对方向的外边距时,外边距会发生叠加(Margin Collapse),当兄弟盒子的外边距不一样时,将以最大的那个外边距为准。


    同一BFC外边距合并同一BFC外边距合并
    不同BFC外边距不合并不同BFC外边距不合并
  • BFC清除浮动:计算BFC的高度时,浮动元素也参与计算


    浮动父容器塌陷浮动父容器塌陷
    BFC清除浮动BFC清除浮动
  • 根据BFC的区域不会与float box重叠,实现自适应两栏布局。


    自适应两栏布局自适应两栏布局

BFC解决父子关系外边距合并的方法

父子关系外边距合并父子关系外边距合并

如上图所示:边距合并造成了,和我们预期的效果不一样。即容器之间margin为20px,父容器内部H1边距为40px.

解决方法:

边框法边框法
内边距法内边距法
行内块法行内块法
浮动法浮动法

利用BFC解决父子级外边距合并的方法很多,但是相对应的也会带来一些影响,例如inline-block会导致收缩,缝隙,2.浮动导致容器浮动,
3.绝对定位导致脱离文档流(注意只有absolute,和fixed有效,relative不会产生效果)。还有display为table等等。相对影响较小的方法是overflow:hidden,和overflow:auto,但是在对应的场景下还会产生影响,例如需要下拉菜单时,就不应该设置overflow:hidden。

选择对场景影响最小的方案才是王道!

代码

外边距合并
外边距不合并
父容器塌陷
父容器形成BFC清除浮动
自适应两栏布局

相关文章

  • BFC应用详解

    BFC是什么?BFC如何生成? 1.BFC(Block Formatting Context )块级格式化上下文。...

  • BFC及其应用

    前言 本文包括以下内容: 什么是BFC 如何产生BFC BFC的特点 应用BFC 1、什么是BFC BFC (Bl...

  • BFC、IFC、FFC的概念和应用

    一、 BFC的概念和应用 1. BFC的概念 BFC的全称是 Block Formatting Contexts,...

  • 关于 BFC 的布局应用:清除浮动、文字环绕

    关于 BFC 的布局应用:清除浮动、文字环绕 参考文档:理解CSS中BFC BFC(Block Formattin...

  • BFC 详解

    BFC 定义 BFC 全称 Block Formatting Context,块级格式化上下文。 一个 BFC 是...

  • BFC 详解

    BFC(block-formating-content) 根据W3C官方文档,块格式化上下文(BFC)是CSS正常...

  • BFC详解

    本文归饥人谷和本人所有,如需转载请注明来源 BFC定义 在解释BFC之前,先说一下文档流。我们常说的文档流其实分为...

  • BFC详解

    在解释 BFC 是什么之前,我们先来看下 Box、Formatting Context的概念。 Box: CSS布...

  • BFC 应用

    一、边距合并当同时设置margin,在一个父容器里,渲染规则是类似的额的,有多个元素时,相邻元素边距会进行合并,用...

  • BFC应用

    什么是BFC 文档流 普通流 根据元素在html中的顺序,自上而下渲染页面。行内元素自左向右渲染,行被占满则换行。...

网友评论

      本文标题:BFC应用详解

      本文链接:https://www.haomeiwen.com/subject/otndrxtx.html