CSS 浮动引起父元素高度塌陷

当某个元素设置了浮动,并且刚好此时它的父元素内部没有其它标准元素后,会导致它的父元素高度坍塌,也就是height为0。

这会影响这块区域的整个布局,我举个例子。

我的页面本来是这样的:

A盒子在B盒子中,B盒子和C盒子上下结构。

这时我希望把A移动到右边去,我想到最好的办法就是直接用一个浮动,当我对A设置了float:right后,页面成了这样:

A的位置是对了,但是B的高度塌陷height=0后,原来占据的空间消失,导致C又向上移动,同时覆盖在A上,这完全把之前的布局打乱了,我其实希望A能依然占据原来的空间。

这就是浮动引起的父元素高度塌陷带来的问题。

解决浮动带来的父元素高度塌陷的方法主要有两个。

一 把父元素变成BFC

css 复制代码
.div{
    overflow:hidden
}

二 伪元素清除浮动(作用于父元素)

css 复制代码
.div::after{
    content:""
    display:block
    clear:both
}

总结

浮动可能会带来父元素高度塌陷的问题,建议每次使用浮动,都对其父元素使用清除浮动操作,这样一劳永逸,不用费神考虑是否等父元素没有标准盒子的时候再清除浮动,有时候我们也并不保证是否将来的业务会导致兄弟盒子元素会发生增减。

操作方法也很简单,全局定义一个类,它的作用就是清除浮动,只要使用浮动的位置,给其父元素添加这个类名即可。

相关推荐
Lvan的前端笔记2 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
三天不学习2 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194053 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
明月_清风4 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
Csvn5 小时前
框架性能优化
前端
回眸&啤酒鸭6 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
用户69371750013847 小时前
2026,程序员的时代拐点到了
android·前端·后端
大龄秃头程序员7 小时前
一次 iBeacon + BLE 无感解锁方案的实现记录
前端
小兔子7 小时前
Python 的 GIL 与 free-threading:3.13 之后「去 GIL」走到哪一步了
前端
IT_陈寒7 小时前
SpringBoot自动配置差点让我加班到凌晨
前端·人工智能·后端