

新闻资讯
技术学院overflow: hidden 能清除浮动是因为触发BFC使容器重算高度兜住浮动元素,但这只是副作用而非本职工作;它仅对支持BFC的元素生效,在Flex/Grid中无效,且存在裁剪失效、兼容性等问题;现代推荐用display: flow-root或伪元素clearfix清浮。
overflow: hidden 能清除浮动
它触发了 BFC(块级格式化上下文),让容器重新计算高度,把内部浮动元素“兜住”。这不是它的本职工作,而是副作用——所以别当正经清浮方法用。
display: block 或 table-cell 等支持 BFC 的元素生效height 或 max-height,可能意外裁剪内容overflow: hidden + transform 组合有渲染 bug,可能白屏overflow: hidden 裁剪图片/文字时的坑它只裁剪「溢出容器边界」的内容,但对定位元素(position: absolute)或 transform 位移后的元素,裁剪行为常被误判。
position: absolute 且 top: -10px,哪怕超出父容器顶部,overflow: hidden 也拦不住transform: translateY(-5px) 上移文字,文字仍可见——因为 transform 不改变文档流位置,裁剪坐标系没变border-radius)加 overflow: hidden 才能真正圆角裁剪图片,否则图片直角会露出来overflow: hidden 清浮的现代写法真正该用的,是语义明确、无副作用的方法。
display: flow-root:专为清浮设计的 display 值,兼容 Chrome 64+/Firefox 58+/Safari 15.4+.clearfix::after {
content: "";
display: table;
clear: both;
} 兼容老浏览器,但多一层 DOM 干扰display: inline-block 或 Flex 子项,从根源避免浮动overflow: hidden 裁剪只有两种不可替代的场景:强制视觉裁剪 + 防止滚动条闪现。
border-radius: 50% 必须配 overflow: hidden,否则图片边缘穿出圆形overflow: hidden 可避免容器突然出现滚动条overflow: hidden
控制视口,强行删掉会导致内容错位记住:它不是清浮开关,也不是万能裁剪刀。用之前先问一句——我到底想解决什么问题?是高度塌陷,还是视觉越界?答案不同,解法就该不同。