新项目优先用 Flexbox,浮动仅用于文字环绕、老项目维护和极简内联排版;Flexbox 解决清浮动、垂直居中、等高列、顺序控制和弹性分配五大痛点。
浮动和 Flexbox 都能排元素,但思路完全不同:浮动是“让元素自己漂走”,Flexbox 是“让容器统一指挥”。现在做新项目,优先用 Flexbox;只有特定场景才保留浮动。
它没被淘汰,只是退居二线:
float: left + shape-outside 最轻量、兼容性最好float: left 加点 margin 就能搞定,代码就一行不是功能多,而是把以前要“打补丁”的地方,直接设计进规则里:
display: flex 自带 BFC 效果align-items: center 一行解决,不用 position + transform 或 line-height 偷懒order 属性调整显示顺序,不用动 HTML 结构flex: 1、flex: 2 直接按比例分宽度,浮动得手动算百分比加 margin满足任一条件,就该切过去:
移动端从横排变竖排),用 flex-direction: column 切换比写一堆 float 媒体查询干净得多flex-wrap 自动换行,浮动换行后容易错位justify-content 和 gap 是声明式控制真要过渡期共存,注意边界:
display: flex,子项的 float 属性会被浏览器忽略,还可能引发渲染异常overflow: hidden 或伪元素 ::after { clear: both } 就能稳住新项目起步,直接上 Flexbox;旧项目改造,从导航栏、卡片列表这类结构清晰的模块开始替换。浮动不是错误,只是工具箱里那把老螺丝刀——好用,但拧复杂螺栓时,该换电动扳手了。