rem 方案原理

rem 的工程化实践

  1. 在实际开发工程时,我肯定不想去把设计稿里的元素一一计算转成rem,然后在代码里写 width: xxx rem,我还是希望直接写设计稿里标注的 px,然后由工具自动转成 rem 去适配所有设备;
  2. 这里介绍两个 npm package:
    • lib-flexible:它就是规定不论什么设备,都把宽度分成 10 份,并且设定了 html 的 font-size;
      document.documentElement.style.fontSize = document.documentElement.clientWidth / 10 + 'px'
      
    • 在 postccs 里使用 postcss-pxtorem:postcss 的一个插件,在处理 css 时自动将手写的 px 转成 rem,配置项可以去看文档;
      'postcss-pxtorem': {
        rootValue: 75,  // 设计稿的 1rem = 75px
        propList: ['*']
      }
      
  3. 这样一来,pxtorem 这个插件会自动将我们写的 css 中的 px 转成相对于 750px 尺寸设计稿的 rem 单位了;

告别 rem,使用 vw

  1. lib-flexible 的 GitHub 已经宣布停止使用 rem 方案了,因为找到了新的更好的全局性参照单位:vw;
  2. 1vw 就等于屏幕宽度的 1% ,它本质上就是一个百分比单位,比如 3vw 就相当“屏幕宽度的 3%”,那么用 vw 单位可以直接写成:750/75 = 10vw,即占页面宽度的 10%;
  3. 还是之前的问题,人工进行设计稿的 px 到 vw 单位的转换太麻烦,在开发中使用 Webpack 编译打包,那么已经有人开发了 postcss 的插件:postcss-px-to-viewport,配置好这个插件,你写 CSS 的时候可以严格按照设计稿上的像素值去写,这个插件负责将你写的 px 转换为 vw;

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于产品、设计、开发的问题和看法,还有技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程

了解更多

目录

  1. 1. rem 方案原理
  2. 2. rem 的工程化实践
  3. 3. 告别 rem,使用 vw