从 px 的绝对统治,到 rem 成为响应式设计的事实标准,我们似乎已经找到了完美的解决方案。

然而,如果你最近观察一些顶尖科技公司的前端代码库或设计系统,你会发现一个新的趋势正在悄然兴起:px 和 rem 的使用场景正在被大幅压缩,取而代之的是以 vw 和 clamp() 为代表的现代 CSS 方案。

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

拥抱真正的“流体布局”

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

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 仍然是定义绝对、固定尺寸(如 border-widthbox-shadow 的偏移量)的最佳选择。

rem 在一些不追求极致流体体验、更注重全局可访问性缩放的场景(如文档型网站、后台管理系统)中,依然是一个简单、可靠的方案。

然而,在面向消费者(To C)的、对视觉和体验要求极高的产品中,vw + clamp() 所代表的现代 CSS 布局方案,正凭借其无与伦比的流体体验、组件解耦能力和维护效率,成为新的行业标杆。

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

 

px 和 rem已经过时?的更多相关文章

  1. px-rem px转换为rem的工具

    将px转换为rem的工具,github地址:https://github.com/finance-sh/px-rem 将px转换为rem的工具 怎样转换静态文件 安装: npm install px- ...

  2. px-rem 一个将px转换为rem的工具

    将px转换为rem的工具,github地址:https://github.com/finance-sh/px-rem 怎样转换静态文件 安装: npm install px-rem -g 然后跑下命令 ...

  3. Sublime 插件- px 转rem

    一个CSS的px值转rem值的Sublime Text 3自动完成插件. 插件效果如下: 安装 克隆项目   https://github.com/hyb628/cssrem.git 进入packag ...

  4. 好用的px转rem的插件

    一个CSS的px值转rem值的Sublime Text 3自动完成插件. 下载地址: https://github.com/flashlizi/cssrem 安装 下载本项目,比如:git clone ...

  5. px与rem关系及转换

    PX特点 1. IE无法调整那些使用px作为单位的字体大小:2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位:3. Firefox能够调整px和em,rem,但是96%以上的中 ...

  6. css大小单位px em rem的转换和详解

    css大小单位px em rem的转换和详解 PX特点1. IE无法调整那些使用px作为单位的字体大小:2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位:3. Firefox能 ...

  7. px,em,rem的区别

    PX特点 1. IE无法调整那些使用px作为单位的字体大小: 2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位: 3. Firefox能够调整px和em,rem,但是96%以上 ...

  8. Sublime Text中安装插件来实现px与rem间的换算

    今天在群里无意中看到了群友分享的一篇关于移动端的文章.里面其他内容我倒不大感兴趣,反而是rem让我提起了兴趣. 首先来谈一下rem,rem是CSS3中新增加的一个单位值,它和em单位一样,都是一个相对 ...

  9. vue px 转rem

    来自:https://www.cnblogs.com/wangqiao170/p/8652505.html 侵 删   每一个认真生活的人,都值得被认真对待 vue px转换为rem 前端开发中还原设 ...

  10. vue px转换为rem

    前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem.然而很多人依然还是处于刀耕火种的时代,要么自己去计算rem值,要么依靠编辑器安装插件转换. 而本文的目标就是通过一系列的配 ...

随机推荐

  1. 卡掉hash的方法

    大质数hash 通常,这个质数会选择在 \(10^9\) 附近,如 \(998244353\),\(10^9+7\). 考虑生日碰撞,欲达到 50% 成功率,需要尝试的次数为 \[\begin{ali ...

  2. 洛谷 P5066 [Ynoi2014] 人人本着正义之名debug-log

    序言 此日志分为四部分. 00:00是开始打代码的时间. 最开始打完代码(没有debug)大约用了两小时. part1-20210323 02:30 生成新节点时,没有给随机权值. 02:41 upd ...

  3. Windowns下Go环境搭建(含GoLand激活),并运行第一个Go程序

    As we all know, Go是一门注重简单.可靠.高效的编程语言.它比其他语言都简单,所以学起来更快. 在2007年,谷歌的搜索引擎出了一个问题.当谷歌工程师尝试调试新代码时,单单编译就数百万 ...

  4. 「Log」2023.8.14 小记

    序幕 起晚了,七点半到校. 跟化竞选手寒暄几句之后就去开电脑. 补周末没写的博客,补落下的题单. 学杜教筛??????不会卷积????? 暂时放弃,学一下扩欧. 写了篇扩欧博客. \(\text{Li ...

  5. Grafana+Prometheus+Node_exporter监控Linux系统

    一.简单介绍 这里介绍使用prometheus+grafana+node_exporter实现linux系统的监控.下面针对这三个组件进行具体的说明 prometheus prometheus是一套开 ...

  6. 使用hive数据查询小结

    业务背景: 公司大数据查询需要通过hive查询和分析一些数据 产品提出业务分析需求: 我的处理方式: 接到需求就想怎么写SQL语句,然后不断调整SQL语句进行验证,最后这个需求写了170行的SQL语句 ...

  7. [CF878E]Numbers on the blackboard

    E - Numbers on the blackboard 最后的答案肯定为\(\sum_{l\leq i\leq r} 2^{p_i}\times a_i\) 然后这个\(p\)满足以下限制: \( ...

  8. SolidWorks Flexnet Serve 正在启动...

    SolidWorks Flexnet Serve 正在启动... 解决方案 设置->主页->电脑名称改成英文 电脑重启 具体流程 事情是这样,当我在安装solidworks2022时候发现 ...

  9. PHP判断PC还是手机登录

    <?php function isMobile(){ $useragent=isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AG ...

  10. jenkins部署github项目

    过程和gitee+jekins配置一样 方式1:使用ssh方式 jekins配置给github的认证信息 采取ssh方式,即需要提前将Jenkins本机的key添加到Gitlab上 先配置好ssh证书 ...