什么是BFC,如何清除浮动?

BFC(Block Formatting Context)块级格式化上下文,是一个独立的布局环境。有自己独立的渲染区域。且在一个BFC中,块盒与行盒(行盒由一行中所有的内联元素所组成)都会垂直的沿着其父元素的边框排列。BFC布局的特点就是 将自己与外部隔离开。内部的布局不会受外部影响,外面的也不会影响内部的布局。

BFC的应用场景有哪些?

  1. 自适应布局
  2. 清除浮动
  3. 解决布局时盒子在垂直方向上外边距重叠问题

边距重叠:当两个box都设置了margin,那么这两个box在 垂直方向上会发生边距重叠,取绝对值较大的那个为最终值。

嵌套关系(父级关系),如果子元素设置了外边距margin,在没有给父元素设置BFC的情况下,父元素也会有外边距。解决方法就是给父元素添加 overflow:hidden。使父元素变成BFC(但是父元素的高度会发生变化)

.parentbox {
	height:200px;
  	border: 1px solid red;
  	overflow: hidden;
}

.childbox {
  	margin: 20px;
  	background: #0076ff;
  	width: 100px;
  	height: 100px;
}

同级元素的重叠,取绝对值较大者

.sibling1{
  background: #090a;
  width: 300px;
  height: 200px;
  margin-bottom: 30px;
}
.sibling2{
  background: #ea3f11;
  width: 200px;
  height: 200px;
  margin-top: 10px;
}
 <div class="sibling1"></div>
   <div class="sibling2"></div>

如何创建一个BFC?

  • overflow:hidden(auto)这种方法常用来清除浮动。
  • position:absolute(fixed)这种方法会使元素脱离标准文档流,不占位置
  • display:inline-block/table-cell /flex/inline-flex(不常用)
  • float:left(right)这种方法会使元素脱离文档流,并且父元素也会受影响。

如何清除浮动?:

  • 给父元素添加 overflow:hidden (auto)

  • 在浮动元素的末尾加一个空标签 并为其设置样式 clear:both (额外标签法)(这种方法的缺点就是会增加多余的标签)

  • after伪元素清除浮动 (推荐使用)
    具体代码:

.mainBox:after{
  	content: "";
  	height:0;
    display: "block";
    clear:both;
    visibility: hidden;
    overflow:hidden;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值