HTML css解决高度塌陷的方法

高度塌陷是HTMl中常见的问题,今天简单的整理一下几种方法来解决高度塌陷。

什么是高度塌陷:在文档流中,父元素的高度默认是被子元素撑开的也就是子元素多高父元素就多高,但为子元素设置浮动以后,子元素会完全脱离文档流此时将导致子元素无法撑起父元素高度,导致父元素塌陷,父元素下的元素都会向上移动 会导致布局变乱。
例:先设置3个如下div

<div class="box1">
		<div class="box2"></div>
</div>
<div class="box3"></div>

分别给他们不同的css样式

.box1{border: 10px red solid;}
.box2{width: 100px;height: 100px;background-color: blue;}
.box3{height: 100px;background-color: yellow;}

父元素box1不给高度,默认被box2撑开
在这里插入图片描述
但是当给box2设置浮动以后,它会完全脱离文档流,这将导致它无法把父元素撑起来,从而导致父元素box1高度塌陷,而父元素box1下面的box3会向上移动,布局就会出现以下效果。
在这里插入图片描述

如何解决高度塌陷:
1.可以固定父元素的高度去解决(在特定的时候才用,加了固定高度后,就不能高度自适应了)
2.给父元素设置overflow:hidden;它可以解决高度塌陷并实现高度自适应,但是只要子元素 内容超出父元素外,就会被隐藏。
3.在浮动元素下方添加一个空元素

<div class="clear"></div>

并给它设置属性 .clear{clear: both;} 清除浮动元素的影响
4.给父元素添加display:table;让父元素转换元素类型和表格一样,弊端是这样会改变当前元素的类型。
5.通过after伪类选中box1后边

.box1:after{    content: "";/*添加内容*/
                display: block;/*转换一个块元素*/
				clear: both;
				height: 0;    /*后面的是为了兼容其他的浏览器*/
				overflow: hidden;
                visibility: hidden;
			}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值