CSS高度塌陷问题

css中的高度塌陷是关于浮动的常见问题
比如,在盒子嵌套的模型中,子盒子浮动脱标,当子盒子的高度超出父盒子的高度时,父盒子高度会发生塌陷,导致整个模型混乱。

<style>
        .d1{
            width: 100px;
            background-color: black;
        }
        .d2{
            float: left;
            width: 50px;
            height: 150px;
            background-color: red;
        }
    </style>

	-------------
	<div class="d1">
        <div class="d2"></div>
    </div>

如上的盒子嵌套,子盒子脱标之后无法撑起父盒子的高度,父盒子在页面上将塌陷无显示。

高度塌陷的解决办法:清除浮动

  1. 内墙法,即在父元素中额外的添加一个盒子,给盒子设定样式为:clear: both。w3c推荐的方式;
.d3{
            clear: both;
        }
  <div class="d1">
        <div class="d2"></div>
        <div class="d3"></div>
    </div>

在盒子模型中添加了一个样式为clear:both的盒子,可以消除浮动造成的塌陷。
2. 父元素添加:overflow: hidden;
在父元素的样式中添加overflow:hidden;
3. 双伪元素浮动(腾讯、小米均在使用)
直接添加以下样式即可。

.clearfix:before,.clearfix:after {
    content: "";
    display: table;
}
.clearfix:after {
    clear: both;
}
.clearfix {
    *zoom: 1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值