解决子级用CSS float浮动 而父级div没高度不能自适应高度

当CSS中子级元素使用float浮动时,父级div无法根据子级高度自适应。本文介绍了三种解决方法:1) 设置父级固定高度;2) 使用clear修复;3) 添加overflow:hidden。推荐使用overflow隐藏法,无需增加额外div。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当一个div的子级用了float浮动时,这个div的高度就不受子级div高度的影响了。 如:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>父div不自适应高度实例</title>
</head>
<style> .father { width:500px; border:1px solid #000; padding:10px}
.children_1 { width:220px; height:100px; background:#0066CC}
.children_2 { width:230px; height:100px; background:#F9F900}
.fl { float:left; }
.fr { float:right; } </style> 
<body>
	<div class="father">
		<div class="children_1 fl"></div>
		<div class="children_2 fr"></div>
	</div>
</body>
</html> 

运行结果:

这是因为css float的响应,有三种方式可以解决这个问题。

###方法一:对父级设置固定高度 此方法可用于能确定父级div内子级对象高度。 假如以上案例,我们知道内部div高度100px,那对父级设置css height为100px看看效果。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>父div不自适应高度实例</title>
</head>
<style> .father { width:500px; border:1px solid #000; padding:10px; height:100px;}
.children_1 { width:220px; height:100px; background:#0066CC}
.children_2 { width:230px; height:100px; background:#F9F900}
.fl { float:left; }
.fr { float:right; } </style> 
<body>
	<div class="father">
		<div class="children_1 fl"></div>
		<div class="children_2 fr"></div>
	</div>
</body>
</html> 

###方法二:加css clear解决父div不能自适应高度

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>父div不自适应高度实例</title>
</head>
<style> .father { width:500px; border:1px solid #000; padding:10px;}
.children_1 { width:220px; height:100px; background:#0066CC}
.children_2 { width:230px; height:100px; background:#F9F900}
.fl { float:left; }
.fr { float:right; }
.cb {clear: both;} </style> 
<body>
	<div class="father">
		<div class="children_1 fl"></div>
		<div class="children_2 fr"></div>
		<div class="cb"></div>
	</div>
</body>
</html> 

###方法三:对父级样式加overflow样式 此方法非常简单,也可以作为推荐解决父级不能被子级撑开自适应高度的方法,可以不增加div盒子对象,只需要对父级加一个overflow:hidden样式即可。

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>父div不自适应高度实例</title>
</head>
<style> .father { width:500px; border:1px solid #000; padding:10px; overflow:hidden;}
.children_1 { width:220px; height:100px; background:#0066CC}
.children_2 { width:230px; height:100px; background:#F9F900}
.fl { float:left; }
.fr { float:right; } </style> 
<body>
	<div class="father">
		<div class="children_1 fl"></div>
		<div class="children_2 fr"></div>
	</div>
</body>
</html> 
## 最后 整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。 ![](https://img-blog.csdnimg.cn/8326170d994a40c38c9c982807b5c454.jpeg#pic_center) **有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享**

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值