浮动导致文字重叠的根本原因是浮动子元素脱离文档流致父容器高度塌陷,使后续文字块掉入空白区被环绕;需先检查父容器computed height是否为0px,再针对性清除浮动或改用flex/grid布局。

浮动导致相邻元素文字重叠,根本原因是浮动子元素脱离文档流,父容器高度塌陷,后续文字块“掉进”空白区被环绕——不是文字本身错位,而是布局结构断裂了。
检查父容器是否塌陷(最常见误判点)
打开浏览器开发者工具,选中疑似出问题的父容器(比如包裹图片和文字的 此时别急着调文字样式,先确认: 例如这个结构: 要让 但更稳妥的做法是直接给父容器闭合浮动,避免依赖 HTML 顺序: 浮动图片不带动文字环绕,90% 是因为 左浮动图片需配 示例修正: 浮动本不是为整体布局设计的,强行用于多栏或卡片排列,只会不断补 旧项目迁移时注意:flex/grid 在 Chrome 29+/Firefox 28+/Safari 6.1+ 已全支持;若需兼容 IE10,仍得保留 clearfix 方案,但新功能开发请彻底告别 float。height 是否为 0px 或远小于预期。如果确实是 0,那文字重叠就是塌陷引发的连锁反应,不是 margin 或 line-height 的问题。
float: left 或 float: right
标签)作为“锚点”被浮动元素环绕 写在 外层)清除浮动必须加在正确位置(clear:both 失效主因)
clear: both 不是对浮动元素自身设的,也不是随便加在父容器上就管用。它只对“紧跟在浮动元素之后的块级兄弟元素”生效。@@##@@
<p>这段文字会绕图</p>
不被图片顶部“吸住”,就得给它加 clear: both:.text-after-float { clear: both; }
display: flow-root(现代写法,无裁剪风险).clearfix::after 伪元素方案,content 必须设 display: table 或 block,否则 clear 不触发overflow: hidden:它虽能触发 BFC,但会裁剪 box-shadow、position: absolute 下拉菜单等溢出内容文字环绕异常时,优先查 img 的 display 和 margin
没设 
display: block —— 它默认是 inline 元素,部分浏览器下 margin 不生效。margin-right,右浮动配 margin-left,且不能只写 margin: 12px,否则上下 margin 会干扰行高,造成段落错位。img.float-left {
float: left;
display: block;
margin-right: 16px;
margin-bottom: 8px;
}
现代项目直接弃用 float 布局(一劳永逸)
clear、调 margin、防塌陷。真正省事的做法是:
display: flex:父容器一行声明,自动撑高,无需清除display: grid:grid-template-columns 直接定义列宽,gap 控制间距,语义清晰shape-outside + float 组合,或保持自然流式排版
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











