美文网首页
CSS中的BFC

CSS中的BFC

作者: beatzcs | 来源:发表于2019-09-14 10:45 被阅读0次

BFC定义

BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域,或者说是一个隔离的独立容器。

BFC的形成条件

  • 浮动元素,float 除 none 以外的值;
  • 定位元素,position(absolute,fixed);
  • display 为以下其中之一的值 inline-block,table-cell,table-caption;
  • overflow 除了 visible 以外的值(hidden,auto,scroll);

BFC的特性

  • 内部的Box会在垂直方向上一个接一个的放置。
  • 垂直方向上的距离由margin决定
  • bfc的区域不会与float的元素区域重叠。
  • 计算bfc的高度时,浮动元素也参与计算
  • bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素。

特性分析

1、BFC中的盒子对齐

<div class="container">
  <div class="box1"></div>
  <div class="box2"></div>
  <div class="box3"></div>
</div>
.container {
    position: absolute;  /* 创建一个BFC环境*/
    height: auto;
    background-color: #eee;
}

内部的Box会在垂直方向上一个接一个的放置。

2、外边距折叠
在常规文档流中,两个兄弟盒子之间的垂直距离是由他们的外边距所决定的,但不是他们的两个外边距之和,而是以较大的为准。那么怎么让垂直外边距不折叠呢?

bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素,同样外面的元素不会影响到BFC内的元素。所以就让兄弟盒子中的任一个处于另一个BFC中就行了。

<div class="container">
    <div class="wrapper">
        <div class="box1"></div>
    </div>
    <div class="box2"></div>
</div>
.wrapper {
    overflow: hidden;  /* 创建一个BFC环境*/
}

3、不被浮动元素覆盖
浮动的盒子会遮盖下面的盒子,但是下面盒子里的文字是不会被遮盖的,文字反而还会环绕浮动的盒子。这也是一个比较有趣的特性。可以用BFC来防止字体环绕。

.left {
    float: left;
    width: 100px;
    height: 100px;
    background-color: yellow;
}

p {
    background-color: green;
    /* overflow: hidden; */
}
字体环绕.png

4、BFC 可以包含浮动的元素(清除浮动)
正常情况下,浮动的元素会脱离普通文档流,使父元素高度坍塌。即外层的div会无法包含内部浮动的div。
但如果我们触发外部容器的BFC,根据BFC规范中的第4条:计算BFC的高度时,浮动元素也参与计算,那么外部div容器就可以包裹着浮动元素。

更多文章:
CSS深入理解流体特性和BFC特性下多栏自适应布局
CSS中的BFC详解

相关文章

  • CSS清除浮动的方法

    BFC CSS中的BFC BFC:block formatting context块级格式化上下文; BFC 与清...

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

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

  • 前端面试基础题

    BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BF...

  • CSS-BFC的理解

    简介在使用CSS的过程中,经常会听到触发BFC,但是何为BFC。BFC(Block formatting cont...

  • CSS中重要的BFC

    CSS中有个重要的概念BFC,搞懂BFC可以让我们理解CSS中某些原本诡异(??)的地方。 1. 简介 在解释BF...

  • [前端基础]前端开发基础整理(基础篇)

    1.0 BFC BFC(Block Format Context)块级格式化上下文,在CSS中不同的display...

  • Css中的BFC

    BFC (Block Fromatting Context) 块级格式化上下文 作用: 1.它是页面中一个独立的...

  • css中的BFC

    在普通流中的盒子会参与一种格式上下文,这个盒子可能是块盒也可能是行内盒,但不可能同时是块盒又是行内盒。块级盒参与块...

  • CSS中的BFC

    一、BFC是什么? 它是 Block Formatting Context (块级格式化上下文) 的简称,接下来通...

  • CSS中的BFC

    BFC定义 BFC(Block Formatting Context)格式化上下文,是Web页面中盒模型布局的CS...

网友评论

      本文标题:CSS中的BFC

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