关于BFC

作者: heheheyuanqing | 来源:发表于2019-11-03 17:16 被阅读0次

BFC 块格式化上下文

创建BFC的情况(指路

BFC是盒子元素布局的区域以及浮动元素与其他元素交互的区域,是一个作用范围;规定区域内的元素的排列方式

BFC形成条件

BFC特性

  • 内部的Box会在垂直方向,一个接一个地放置

  • Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠

  • 每个元素的margin-box的左边, 与包含块border-box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

  • BFC的区域不会与float box重叠。

BFC能做什么

  • 高度塌陷
HTML: 
<div class="container">
  <div class="left"></div>
</div>
CSS:
.container {
  width: 500px;
  background-color: #6735;
  border:2px solid red;
}
.left {
  width: 100px;
  height: 200px;
  background-color: #343433;
  float:left;
}
高度塌陷

原因:标准文档流中,container元素的高度由子元素left撑开,left元素设置float之后脱离了文档流,导致container元素高度塌陷

解决方法:BFC具有包含浮动元素的特性,因此父元素设置overflow:hidden 创建BFC即可包含浮动子元素

  • margin重叠
  1. 垂直方向上的块元素margin重叠
    常见场景就不多说了嘻嘻

  2. 父子元素的margin重叠

<div class="box"></div>
  <div class="wrap">
    <h4>xixix</h4>
  </div>
.wrap {
  width: 200px;
  background-color: #dedede;
  overflow:hidden
}
.wrap h4 {
 
  background-color: #fefe;
  margin-left: 20px;
  margin-top:30px;
}
父子元素margin重叠

原因:属于同一个BFC的两个相邻Box的margin会发生重叠

解决方法:wrap元素添加overflow:hidden

其他方法: wrap元素添加border | padding

  • 阻止浮动元素覆盖
<div class="box1"></div>
 <div class="box2"> BFC的区域不会与float box重叠。BFC的区域不会与float box重叠。BFC的区域不会与float box重叠。BFC的区域不会与float box重叠。BFC的区域不会与float box重叠。BFC的区域不会与float box重叠。BFC的区域不会与float box重叠</div>


.box1{
  height: 100px;
  width: 100px;
  float: left;
  background: #dedede;
}
.box2{
  width: 200px;
  height: 200px;
  background: #dede;
}
字体环绕

原因:box1浮动之后脱离文档流,与box2重叠且引起文字环绕效果

解决方法:box2增加overflow:hidden创建BFC,防止与float元素重叠

相关文章

  • 关于BFC

    关于BFC BFC 定义: BFC(Block formatting context)块级格式化上下文:比如设置了...

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

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

  • CSS新手向的知识点<四>

    阅读本篇文章,你将大致了解到BFC的作用 关于BFC的知识 BFC(block formatting contex...

  • BFC神奇背后的原理

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用...

  • 什么是BFC(Block Formatting Context)

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用...

  • BFC的理解

    BFC 已经是一个耳听熟闻的词语了,网上有许多关于 BFC 的文章,介绍了如何触发 BFC 以及 BFC 的一些用...

  • 关于BFC

    BFC 块格式化上下文 创建BFC的情况(指路) BFC是盒子元素布局的区域以及浮动元素与其他元素交互的区域,是一...

  • 关于BFC

    BFC BFC 全称 Block Formatting Context。每个渲染区域用formatting con...

  • 关于BFC

    BFC 是什么? 首先BFC(Block Formatting Contexts)中文是块级格式化上下文。BFC是...

  • 关于BFC

    什么是BFC bfc( 块级格式化范围 )是web页面中盒模型布局的CSS渲染模式,他决定了元素如何对其内容进行定...

网友评论

      本文标题:关于BFC

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