ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

bfc详解

2021-06-29 10:31:59  阅读:161  来源: 互联网

标签:bfc BFC 盒子 color 详解 background 你好


何为BFC

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

形成BFC的条件

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

BFC的特性

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

BFC中的盒子对齐

内部的Box(块级元素)会在垂直方向上一个接一个的放置。(这条特性不必纠结,即便不在BFC里块级盒子也会垂直排列)

外边距折叠

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

不被浮动元素覆盖

  • 左边固定宽度,右边不设宽,因此右边的宽度自适应,随浏览器窗口大小的变化而变化。
<div class="column"></div>
<div class="column"></div>
.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;
}

  • 三栏布局
    左右两边固定宽度,中间不设宽,因此中间的宽度自适应,随浏览器的大小变化而变化。
<div class="contain">
    <div class="column"></div>
    <div class="column"></div>
    <div class="column"></div>
</div>
.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;
}
  • 防止字体环绕

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

<div class="left"></div>
<p>你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好
   你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好
   你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好你好
</p>
  1. 环绕
.left {
    float: left;
    width: 100px;
    height: 100px;
    background-color: yellow;
}

p {
    background-color: green;
    /* overflow: hidden; */
}
  1. 利用bfc防止环绕
.left {
    float: left;
    width: 100px;
    height: 100px;
    background-color: yellow;
}

p {
    background-color: green;
    overflow: hidden;
}
  • BFC包含浮动的块
    这个是大家再熟悉不过的了,利用overflow:hidden清除浮动嘛,因为浮动的盒子无法撑出处于标准文档流的父盒子的height。

总结

BFC内部的元素布局不会对外部产生影响,外部的布局也不会对内部产生影响

清除浮动(应该是自动将浮动元素计算进自身的高度)以及解决盒子塌陷,都是为了不让内部的布局影响到外部的布局

标签:bfc,BFC,盒子,color,详解,background,你好
来源: https://www.cnblogs.com/Hsong/p/14948499.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有