图片错位源于浮动元素脱离文档流致父容器高度塌陷,解决关键是清除浮动;推荐clearfix方案(.clearfix::after{content:"";display:table;clear:both}),亦可用display:flow-root或overflow:hidden等。
图片错位通常是因为浮动元素脱离文档流,导致父容器高度塌陷,后续内容或图片被“吸上去”或错行。核心解决思路是:让父容器正确包裹浮动子元素,即清除浮动(clear float)。
当对图片或其外层盒子设置 float: left 或 float: right 时,该元素会脱离普通文档流,不再占据原来的空间。如果父容器没有设定高度,它就会“看不见”浮动子元素,高度变成0——于是后面的图片、文字就会上移,出现视觉上的错位、重叠或换行异常。
给浮动元素的**直接父容器**添加一个清除浮动的类(clearfix),是最稳定通用的做法。
这样父容器就能自动撑开,包裹所有浮动图片,避免错位。
root(现代替代方案):给父容器设 display: flow-root,同样能创建BFC并包含浮动。兼容性较好(Chrome 64+/Firefox 59+/Edge 79+),简洁无副作用。