CSS中的BFC是什么

定义

一个块格式化上下文(block formatting context) 是Web页面的可视化CSS渲染出的一部分。它是块级盒布局出现的区域,也是浮动层元素进行交互的区域。

触发BFC的条件

  • 根元素或其它包含它的元素(略过不谈);
  • 浮动元素 (元素的 float 不是 none);
  • 绝对定位元素 (元素具有 position 为 absolute 或 fixed);
  • 内联块 (元素具有 display: inline-block);
  • 表格单元格 (元素具有 display: table-cell,HTML表格单元格默认属性);
  • 表格标题 (元素具有 display: table-caption, HTML表格标题默认属性);
  • 具有overflow 且值不是 visible 的块元素;
  • display: flow-root (推荐使用);
  • column-span: all 应当总是会创建一个新的格式化上下文,即便具有 column-span: all 的元素并不被包裹在一个多列容器中;

BFC特性

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

为什么要使用触发BFC?

  • BFC可以解决子元素浮动导致父元素高度塌陷问题;
  • BFC可以解决两个兄弟盒子之间的垂直距离是由他们的外边距所决定的,但不是他们的两个外边距之和,而是以较大的为准,即margin重叠问题;
  • 不被浮动元素覆盖;
  • 防止文字环绕;

原创文章,作者:ZERO,如若转载,请注明出处:https://www.edu24.cn/course/css/css-bfc.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZEROZERO
上一篇 2022年10月27日
下一篇 2022年11月8日

相关推荐

  • css布局基础总结

    前端css布局知识繁杂,实现方式多种多样。想写出高效、合理的布局,必须以深厚的css基础为前提。为了方便记忆和复习,将css布局要点记录如下。内容较多,应用方面说的不太详细,但都是…

    2018年9月13日
    2.3K
  • 网页布局之三栏网页宽度自适应布局

    在工作中经常遇到网页布局错乱的问题,往往引发的这种问题都是因为不同设备不同分辨率而导致。归根结底,是因为前端工程师经验不足,代码写得不够完好。以下是我总结及从网络搜集的一些网页布局…

    2018年10月8日
    3.0K
  • css晦涩难懂的点都在这啦

    CSS大家肯定都是会的但是每个人所撑握的情况都不一样,特别是已经工作几年的前辈(这里指的是我司)很多CSS玩法都不知道,可能他们已经习惯了用组件, 但是面试的时候又不可避免问,所以…

    2021年1月20日
    1.4K
  • flex布局详解

    往往在移动端开发过程中,弹性布局是非常实用的一种手段。往往你并不需要去反复的使用媒体查询的。整整的响应式布局是使界面能够自动的根据屏幕进行变化,做到完美的弹性布局,在必要的时候,去…

    2018年9月10日
    2.3K
  • css如何利用transparent属性设置透明度?transparent属性绘制各种三角形

    想到用css设置元素透明度,大家的第一反应会是:用Opacity属性来设置透明度,其实在css中还有其他设置透明度的方法。本章给大家介绍用transparent属性设置透明度,以及…

    2021年2月25日
    1.4K
  • px、em和rem实战经验

    在自适应布局或者移动端网页开发时,我们经常会用到em和rem两个长度单位。接下来我们讨论一下这两个单位和px之间的区别,以及他们的使用场景等。 px px,像素(计算机屏幕上的一个…

    2018年9月11日
    2.1K
  • 外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?

    可以设置外层自适应高度的容器为flex布局,利用flex-basis属性即可实现自动填满剩余高度;代码如下:

    2021年2月22日
    1.3K
  • CSS让内容居中的方法总结

    内容水平居中  分行内元素与块级元素两种情况;其中块级元素又分定宽与不定宽两种情况; 行内元素 首先看它的父元素是不是块级元素,如果是,则直接给父元素设置 te…

    2019年6月28日
    3.3K
  • CSS多列等高布局

    在项目开发中,经常遇到需要多列等高布局的需求。解决这种的需求的方法有很多,各有利弊,现总结如下。 方法一:使用flex布局 优点:实现方便,还可以方便实现各种比例 ; 缺点: IE…

    2019年6月11日
    2.2K