跳转到主内容

博客

为什么大厂前端正在全面抛弃 px 和 rem?

返回

为什么大厂前端正在全面抛弃 px 和 rem?

发布于 2025-08-22 12:25·3 分钟阅读
CSS

px 的绝对统治,到 rem 成为响应式设计的事实标准,我们似乎已经找到了完美的解决方案。 然而,如果你最近观察一些顶尖科技公司的前端代码库或设计系统,你会发现一个新的趋势正在悄然兴起: px 和 rem 的使用场景正在被大幅压缩,取而代之的是以 vw 和 clamp() 为代表的现代 CSS 方案。

这并非简单的技术跟风,而是一场深刻的范式转移, 它标志着我们对“响应式设计”的理解,从“在不同断点间切换”演进为“在任意尺寸下平滑过渡”。

拥抱真正的“流体布局”

前端追求的是极致的用户体验和极致的开发效率, rem 的“阶梯式”体验和高维护成本显然无法满足这一要求。 于是,以 vwclamp() 为核心的新方案应运而生。

1. VW (视口宽度单位):天生的流体基因

vw (Viewport Width) 是一个与视口直接关联的单位, 1vw 等于视口宽度的 1%。这意味着,元素的尺寸会随着浏览器窗口的拉伸或收缩,进行实时、平滑、无级的缩放。

.title {
  /* 字体大小永远是视口宽度的 5% */
  font-size: 5vw;
}

这行代码带来的体验是 rem + 媒体查询无论如何也无法模拟的: 丝滑的、完全线性的缩放。

但是,vw 也有一个致命缺陷:缺乏边界。 在超大屏幕上,5vw 的字体会变得巨大无比; 在极小的手机屏幕上,它又可能小到无法阅读。

2. Clamp():终极解决方案,优雅的边界控制

CSS 的 clamp() 函数正是为了解决 vw 的边界问题而生的。 它像一个“夹子”,将一个动态的值“夹”在一个最大值和最小值之间。

语法:clamp(MIN, PREFERRED, MAX)

  • MIN:最小值,兜底值。
  • PREFERRED:理想值,通常是基于 vw 的动态值。
  • MAX:最大值,上限值。

一行 clamp() 代码,往往能替代三到四个媒体查询, 而且效果更平滑、更可控。

px、rem、vw + clamp() 的角色分工

  • px:仍然是定义绝对、固定尺寸(如 border-widthbox-shadow 的偏移量)的最佳选择。
  • rem:在一些不追求极致流体体验、更注重全局可访问性缩放的场景(如文档型网站、后台管理系统)中,依然是一个简单、可靠的方案。
  • vw + clamp():在 To C 产品中,凭借无与伦比的流体体验、组件解耦能力和维护效率,成为新的行业标杆。

结语

从 px 到 rem 再到 clamp() 的演进,不仅是 CSS 单位的更迭, 更是前端开发理念的进化——从固定的像素点,到响应式的断点,再到如今的万物皆流体。

为什么大厂前端正在全面抛弃 px 和 rem? | 宁鑫