高度塌陷解决方法和BFC

高度塌陷的原因及解决方法

父元素没有设置高度(自适应子元素的高度),当子元素脱离文档流的时候(设置float属性或者设置positon为absolute或fixed时),就会造成父元素的高度塌陷问题。

解决方案:

  1. 给父元素添加高度,违背初衷,不推荐。
  2. 触发BFC

BFC(block formatting context):块级格式化上下文。BFC有一个特性,计算其高度时,浮动元素也参与计算。BFC元素是一个独立的容器,容器里面的子元素不会影响到外面的元素。具体内容请参考这篇博客

 触发BFC的五种方法:
  1.根标签html就是一个bfc;
  2.float不为none,但是给父元素设置float,会引起布局发生改变。
  3.position为absolute或fixed
  4.overflow为非visible
  5.display 设置为table-cell、table-caption、flex、inline-block、inline-flex。

BFC的作用:
1.两个相邻box的margin会发生重叠,设置其中一个为BFC后可解决margin重叠的问题。
2. 清除浮动
3. bfc区域不会与float元素重叠

  1. 给父元素添加 overflow:hidden。缺点是子元素定位到父元素外部时,会被隐藏。
  2. 在最后浮动元素的位置后添加一个div标签,并设置属性:clean: both; overflow: hidden; height: 0;
    缺点:添加无意义的div,造成冗余。
  3. 通过添加伪类::after
     .parent{
            border:10px solid blue;         
        }
        /* ::after对IE8以下有兼容问题,可以通过增加zoom: 1;声明来解决。 */
        .parent::after{
            content: " ";
            clear:both;
            /* height:0; */
            overflow: hidden;
            display: block;
            visibility: hidden;
        }
        .son{
            float: left;
            width: 200px;
            height: 50px;
            background-color: red;
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哆啦咪唏

看到这里了,不留下点什么吗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值