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
}

总结

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

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

相关推荐
不可能片场几秒前
AI视频成片 帧间差分把拼接缝照出来
前端·electron
写的都是BUG几秒前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
dpharness3 分钟前
我踩过的四个记忆坑,从预算到换机
前端·后端
用户77833661321111 分钟前
SerpBase驱动:用原生JS实现搜索意图分流浮层
前端
阿明的小蝴蝶11 分钟前
设备出厂横竖屏修改 & 默认手势导航修改(按键导航)
前端
SameX14 分钟前
ArkTS 做应用内"快捷胶囊" —— 续航日记踩过的两个鸿蒙声明式 UI workaround
前端
用户114818678948415 分钟前
水印的实现方式逻辑
前端·python
孟陬2 小时前
Foobar 技术周刊#160:大模型让大规模形式化软件验证成为现实丨AI写C++代码之后会发生什么?丨我们真的需要alpha() 函数吗丨重试,有时会让故障更
前端·后端·typescript
flash俊杰3 小时前
屏幕感知双通道:截图之外,为什么还要一份 UIA 控件清单
前端
熟的生菜3 小时前
从零造一个腱绳驱动灵巧手——仿真器篇3:VTK 渲染与 3D 交互——看得见、点得着、转得动
前端