BFC应用详解

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清除浮动
自适应两栏布局

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,691评论 1 92
  • 一、在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的范例 在CSS当中,相...
    dengpan阅读 3,736评论 0 0
  • 一,浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型是一种可视化格式模型,浮动...
    DeeJay_Y阅读 4,419评论 0 4
  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 4,567评论 0 2
  • 前言 本文包括以下内容: 什么是BFC 如何产生BFC BFC的特点 应用BFC 1、什么是BFC BFC (Bl...
    jazenye阅读 4,549评论 0 1

友情链接更多精彩内容