css bfc是什么意思

在css中,bfc中文意思为“块级格式化上下文”,是Web页面中盒模型布局的CSS渲染模式,指一个独立的渲染区域或者说是一个隔离的独立容器。块格式化上下文包含创建它的元素内部的所有内容。

css bfc是什么意思

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

何为BFC

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

BFC 即 Block Formatting Contexts (块级格式化上下文),属于普通流。
可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部。

形成BFC的条件

立即学习“前端免费学习笔记(深入)”;

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

  5、body 根元素

BFC的特性

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

实践是检验真理的唯一标准

(1)BFC中的盒子对齐

特性的第一条是:内部的Box会在垂直方向上一个接一个的放置。

css bfc是什么意思

浮动的元素也是这样,box3浮动,他依然接着上一个盒子垂直排列。并且所有的盒子都左对齐。

html:

        
        
        
        
    

登录后复制

div {            height: 20px;        }                .container {            position: absolute;  /* 创建一个BFC环境*/            height: auto;            background-color: #eee;        }                .box1 {            width: 400px;            background-color: red;        }                .box2 {            width: 300px;            background-color: green;        }                .box3 {            width: 100px;            background-color: yellow;            float: left;        }                .box4 {            width: 200px;            height: 30px;            background-color: purple;        }

登录后复制

(2)外边距折叠

特性的第二条:垂直方向上的距离由margin决定

在常规文档流中,两个兄弟盒子之间的垂直距离是由他们的外边距所决定的,但不是他们的两个外边距之和,而是以较大的为准。
css bfc是什么意思

html:

 

登录后复制

.container {            overflow: hidden;            width: 100px;            height: 100px;            background-color: red;        }                .box1 {            height: 20px;            margin: 10px 0;            background-color: green;        }                .box2 {            height: 20px;            margin: 20px 0;            background-color: green;        }

登录后复制

 这里我门可以看到,第一个子盒子有上边距(不会发生margin穿透的问题);两个子盒子的垂直距离为20px而不是30px,因为垂直外边距会折叠,间距以较大的为准。

 那么有没有方法让垂直外边距不折叠呢?答案是:有。特性的第5条就说了:bfc就是页面上的一个独立容器,容器里面的子元素不会影响外面元素,同样外面的元素不会影响到BFC内的元素。所以就让box1或box2再处于另一个BFC中就行了。

css bfc是什么意思

登录后复制

.container {        overflow: hidden;        width: 100px;        height: 100px;        background-color: red;    }        .wrapper {        overflow: hidden;    }        .box1 {        height: 20px;        margin: 10px 0;        background-color: green;    }        .box2 {        height: 20px;        margin: 20px 0;        background-color: green;    }

登录后复制

(3)不被浮动元素覆盖 

以常见的两栏布局为例。

左边固定宽度,右边不设宽,因此右边的宽度自适应,随浏览器窗口大小的变化而变化。

css bfc是什么意思

html:

登录后复制

 .column:nth-of-type(1) {            float: left;            width: 200px;            height: 300px;            margin-right: 10px;            background-color: red;        }                .column:nth-of-type(2) {            overflow: hidden;/*创建bfc */            height: 300px;            background-color: purple;        }

登录后复制

还有三栏布局。

左右两边固定宽度,中间不设宽,因此中间的宽度自适应,随浏览器的大小变化而变化。

css bfc是什么意思

html:

  
        
        
        
    

登录后复制

.column:nth-of-type(1),        .column:nth-of-type(2) {            float: left;            width: 100px;            height: 300px;            background-color: green;        }                .column:nth-of-type(2) {            float: right;        }                .column:nth-of-type(3) {            overflow: hidden;  /*创建bfc*/            height: 300px;            background-color: red;        }

登录后复制

也可以用来防止字体环绕:

众所周知,浮动的盒子会遮盖下面的盒子,但是下面盒子里的文字是不会被遮盖的,文字反而还会环绕浮动的盒子。这也是一个比较有趣的特性。

css bfc是什么意思             css bfc是什么意思

html:

 
    

你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好       你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好       你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好    

登录后复制

css:

(1)环绕

   .left {            float: left;            width: 100px;            height: 100px;            background-color: yellow;        }                p {            background-color: green;            /* overflow: hidden; */        }

登录后复制

(2)利用bfc防止环绕

   .left {            float: left;            width: 100px;            height: 100px;            background-color: yellow;        }                p {            background-color: green;            overflow: hidden;        }

登录后复制

(4)BFC包含浮动的块

这个是大家再熟悉不过的了,利用overflow:hidden清除浮动嘛,因为浮动的盒子无法撑出处于标准文档流的父盒子的height。这个就不过多解释了,相信大家都早已理解。

⑵ BFC可以包含浮动的元素(清除浮动)

浮动的元素会脱离普通文档流,来看下下面一个例子:

登录后复制

css bfc是什么意思

由于容器内元素浮动脱离文档流,导致容器只剩下2px边距高度,我们这时候可以采用BFC:

登录后复制

css bfc是什么意思

⑶ 可以阻止元素被浮动元素覆盖

先看一个文字环绕效果:

我是一个左浮动的元素
我是一个没有设置浮动, 也没有触发 BFC 元素, width: 200px; height:200px; background: #eee;

登录后复制

css bfc是什么意思

这时候其实第二个元素有部分被浮动元素所覆盖,(但是文本信息不会被浮动元素所覆盖) 如果想避免元素被覆盖,可触第二个元素的 BFC 特性,

在第二个元素中加入 overflow: hidden,就会变成:

css bfc是什么意思

学习视频分享:css视频教程

以上就是css bfc是什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2875037.html

(0)
上一篇 2025年3月10日 19:06:32
下一篇 2025年2月18日 08:27:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 详解纯CSS实现多彩、智能阴影的方法

    本篇文章给大家详细介绍一下纯css实现多彩、智能阴影的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 有没有想过如何创建从前景元素中继承某些颜色的阴影效果?阅读本文并找出如何实现方法吧! 前几天我经过家得宝(Home…

    2025年3月10日 编程技术
    200
  • 如何提升css性能

    提升方法: 1、将样式写在css文件中,在head中引用;2、不使用“@import”;3、避免使用复杂的选择器,层级越少越好;4、精简页面的样式文件;5、利用CSS继承减少代码量;6、慎重使用浮动、定位属性;7、标准化各种浏览器前缀等。 …

    2025年3月10日
    200
  • css怎么设置div阴影

    在css中,可以使用box-shadow属性来给设置div阴影,只需要给div元素添加“box-shadow: 水平阴影值 垂直阴影值 模糊距离 阴影大小 阴影颜色 inset;”样式即可;其中“inset”值,可省略,它是设置内阴影的。 …

    2025年3月10日
    200
  • css实现三列布局有哪些方法

    css实现三列布局的方法:1、float浮动布局;2、绝对定位布局;3、flexbox弹性布局,存在IE上兼容性问题,只能支持IE9以上;4、table表格布局,不利于搜索引擎抓取信息;5、gird网格布局,兼容性差。 本教程操作环境:wi…

    2025年3月10日
    200
  • css怎么设置左边距

    css设置左边距的方法:1、使用margin-left属性,可以设置元素的左外边距,语法格式“margin-left:边距值;”;2、使用padding-left属性,可以设置元素的左内边距,语法格式“padding-left:边距值;”。…

    2025年3月10日
    200
  • css怎么设置滚动条的高度

    css设置滚动条高度的方法:首先使用“::-webkit-scrollbar”选择器选中整个滚动条,然后使用height属性设置滚动条的高度,语法格式“::-webkit-scrollbar{height:高度值;}”。 css/edite…

    2025年3月10日
    200
  • css怎么设置字体颜色渐变

    css设置字体颜色渐变的方法:1、使用“background-cli”和“text-fill-color”实现字体颜色渐变;2、使用“mask-imag”设置字体颜色渐变;3、使用“linearGradient、fill”设置字体颜色渐变。…

    2025年3月10日
    200
  • css怎么实现响应式布局

    css实现响应式布局的方法:1、使用flex布局,优点是代码简单、布局方便;2、使用绝对布局,结合使用media可以实现响应式布局;3、使用grid布局,优点是写法简便;4、使用float布局,优点是兼容性比较好。 本教程操作环境:wind…

    2025年3月10日 编程技术
    200
  • css怎么设置字母大写

    css中可以使用text-transform属性设置字母大写,语法格式为“text-transform:capitalize|uppercase;”;其中值“capitalize”可设置首字母大写,值“uppercase”可设置字母全大写。…

    2025年3月10日
    200
  • css怎么设置分割线

    css设置分割线的方法:首先创建一个HTML实例文件;然后在body中创建三个div;最后给第二个div设置样式为“padding-top:3px;width:40%;border-top:1px solid #666666;”即可。 本文…

    2025年3月10日
    200

发表回复

登录后才能评论