CSS浮动已退居图文环绕等辅助场景,Flex布局因语义清晰、天然支持一维排列对齐、无塌陷问题且兼容性完善,成为现代多栏布局主流方案。
CSS 浮动(float)曾是实现多栏布局的主力,但现在它基本只用于
文字环绕图片这类原始设计场景;而 Flex 布局是专为一维布局(行或列)打造的现代方案,语义清晰、控制力强、无需额外修复,已成为主流选择。
float 最初的设计目的很单纯:让文字自然绕排在图片周围,类似报纸排版。开发者后来“借用”它来实现左右两栏、三栏等页面结构,属于功能上的迁移使用。这种“挪用”带来了不少副作用:
overflow: hidden 或伪元素 ::after)Flexbox 从诞生起就瞄准了“容器内子项如何排列、对齐、伸缩”这个核心问题。它不破坏文档流,天然支持:
flex-direction: column)justify-content 控制主轴,align-items 控制交叉轴flex: 1 自动填满剩余空间,flex: 0 0 200px 固定不缩放现在主流浏览器(Chrome、Firefox、Safari、Edge)对 Flex 的支持早已完善,连 iOS Safari 10.3+ 和 Android Browser 4.4+ 都稳定支持。真正需要兼容 IE10/11 的项目虽仍存在,但可通过 Autoprefixer 自动补全前缀,或搭配简单降级方案处理,不再构*面弃用 Flex 的理由。
今天还用 float 的典型场景只剩几个:
shape-outside 效果更佳)除此之外,用 float 做整体布局,等于主动给自己加调试负担和兼容包袱。