关于BFC

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元素重叠

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • relative:生成相对定位的元素,通过top,bottom,left,right的位置相对于其正常位置进行定位...
    zx9426阅读 1,118评论 0 2
  • 1.在什么场景下会出现外边距合并?如何合并?如何不让相邻元素外边距合并?给个父子外边距合并的例子。 在CSS中,两...
    尹萨萨阅读 978评论 0 2
  • 什么是BFC bfc( 块级格式化范围 )是web页面中盒模型布局的CSS渲染模式,他决定了元素如何对其内容进行定...
    sakatayui酱阅读 343评论 0 0
  • BFC 是什么? 首先BFC(Block Formatting Contexts)中文是块级格式化上下文。BFC是...
    1w1ng阅读 519评论 0 0
  • MDN上是这么介绍BFC的: 一个块格式化上下文(block formatting context) 是Web页面...
    印第安老斑鸠_333阅读 673评论 0 0

友情链接更多精彩内容