【CSS基础—No.01】块级格式化上下文BFC

谈谈BFC吧,最近面试经常问,这点内容感觉自己答得总是不那么顺畅。

一、定义:

块级格式化上下文,可以理解为一个容器,这个容器内的物品不会被其他容器影响,也不会影响其他容器。

如果一个元素符合触发BFC的条件,则BFC中的元素布局不受外部影响。

二、触发条件:

  • 根元素:body;

  • 元素设置浮动:float 除 none 以外的值;

  • 元素设置绝对定位:position (absolute、fixed);

  • display 值为:inline-block、table-cell、table-caption、flex等;

  • overflow 值为:hidden、auto、scroll;

三、应用场景:

下面的栗子都是使用 overflow:hidden 解决一些问题

1.解决margin的重叠问题:👉【CSS基础—No.02】margin高度塌陷问题

由于BFC是一个独立的区域,内部的元素和外部的元素互不影响,将两个元素变为两个BFC,就解决了margin重叠的问题。

2.解决高度塌陷的问题:

子元素设置浮动后,父元素会发生高度塌陷,也就是父元素的高度变为0。把父元素变成一个BFC(给父元素设置overflow:hidden)。

3.创建自适应两栏布局:

左边的宽度固定,右边的宽度自适应。左侧设置float:left,右侧设置overflow: hidden。这样右边就触发了BFC,BFC的区域不会与浮动元素发生重叠。

<style>
 .left{
     width: 100px;
     height: 200px;
     background: red;
     float: left;
 }
 .right{
     height: 300px;
     background: blue;
     overflow: hidden;
 }
</style>

<div class="left"></div>
<div class="right"></div>

🚗 参考文章

「2021」高频前端面试题汇总之CSS篇  作者:CUGGZ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值