最轻量兼容的左图右文用float实现,需清除浮动防塌陷;现代推荐flex或grid,避免浮动缺陷。
float 实现图文左图右文的常见写法
直接用 float: left 和 float: right 是最轻量、兼容性最好的方式,尤其适合内容结构简单、不需要响应式复杂断点的场景。
关键不是“怎么浮”,而是“浮完怎么收尾”——浮动元素会脱离文档流,导致父容器高度塌陷。必须清除浮动,否则后续内容会上移错位。
- 图片容器加
float: left,文字容器加float: right,两者宽度之和 ≤ 100% - 父容器末尾加一个带
clear: both的空,或用伪元素:.container::after { content: ""; display: table; clear: both; }- 避免对文字容器设固定高度,否则可能截断长文本;优先用
min-height或让其自然撑开交替排列时 float 的坑:顺序与清除时机
交替布局(如第1组左图右文、第2组右图左文、第3组又切回左图右文)看似只是改个方向,但实际容易出错——
float是按 DOM 顺序逐个浮动的,如果不清除上一组的浮动,下一组会紧贴前一组末尾继续浮动,而不是换行。- 每组图文必须包裹在独立容器中(如
),且每个容器都要触发 BFC 或手动清除浮动
- 不要只靠
float: right让第二组“自动右对齐”:若前一组没清浮,它会跑到第一组右侧空白处,而非整行右侧 - 更稳妥的做法是每组都设
width: 100%+ 内部子元素浮动,并在每组结尾加clear: both
现代替代方案:为什么现在更推荐 flex 或 grid
float本质是为文字环绕图片设计的,强行用于整体布局会越来越难控。尤其当需要响应式切换(比如小屏变上下排列)、等高对齐、垂直居中时,float几乎无解。 - 避免对文字容器设固定高度,否则可能截断长文本;优先用