用 rem 实现 移动端适配 的关键是建立可复用、可维护的自动转换机制,统一设计稿基准为 1rem=100px,通过 js 动态设置根元素 font-size,结合 postcss-pxtorem 自动转换 px 为 rem,并辅以设计协同 工具 与 vw/vh 等单位灵活搭配。

用 rem 实现 移动端适配 ,关键不在“手动改单位”,而在建立一套可复用、可维护的转换机制。与其反复把 px 换算成 rem,不如让 工具 自动完成——这样既减少出错,也大幅降低后续迭代成本。
统一设计稿基准:定死 1rem = 设计稿 100px
这是最常用且易落地的方案。比如设计稿是 750px 宽,就让 1rem = 100px(即 750 ÷ 7.5),这样设计稿上标 32px 的字体,直接写 0.32rem;标 100px 的盒子,就写 1rem。数值直观、心算快、团队对齐成本低。
- 在根元素设置 font-size:根据屏幕宽度动态计算,例如用 JS 或媒体查询
- 推荐用 JS 方案(如 flexible 或 postcss-pxtorem),能更精准响应不同设备
- 避免用固定 font-size(如 16px),否则失去响应能力
用 postcss 插件自动转换单位
开发时仍写 px,构建时自动转 rem——这才是真正解放双手的方式。主流方案是 postcss-pxtorem,配置简单,集成进 webpack/vite 都很顺畅。
- 安装插件后,在 postcss.config.js 中指定 rootValue(如 100)、selectorBlackList(如忽略 .ignore 类)
- 支持白名单 /黑名单,第三方 ui 库或 icon 字体可跳过转换,避免意外错位
- 搭配 vs code 插件(如 CSS Rem Converter),还能在编辑器里实时预览转换结果
设计与 前端 对齐:给设计师一个“rem 换算尺”
适配卡点常出在沟通环节。给设计师提供一个简易换算表或 浏览器 插件(如“Rem Helper”),让他们在标注时直接看到对应 rem 值,前端 拿到的标注稿天然适配,省去反复确认。
立即学习 “ 前端免费学习笔记(深入)”;
- 表格示例:32px → 0.32rem,75px → 0.75rem,100px → 1rem……规律清晰
- 鼓励设计师用 Sketch/figma 的 auto-layout + 文字样式库,复用已设好 rem 的组件
- 定期同步一次“当前 rem 基准值”,避免设计端按旧标准出稿
保留部分场景用 vw/vh,不硬套 rem
rem 适合字体、内边距、卡片尺寸等需要等比缩放的元素,但全盘依赖它反而增加复杂度。像全屏 banner、视口高度占位、横屏适配等,直接用 vw / vh 更自然。
- 例如:.banner {height: 80vh;} 比计算 rem 更直接可靠
- 字体大小也可混用:标题用 rem 保层级,正文用 clamp() 或 vw 实现更柔性的响应
- 关键原则:选最贴合需求的单位,不是所有 px 都必须转 rem
rem 适配不是目的,快速、稳定、一致地呈现界面才是。工具只是手段,核心是建立前 后端 可共识的规则和流程。把重复劳动交给插件,把注意力留给交互细节和边界情况。
以上就是