zoukankan      html  css  js  c++  java
  • 使用postcss-pxtorem和lib-flexible来实现vue项目自动将px转成rem

      有时候我们为了前端页面可以匹配不同分辨率的屏幕,会使用rem来对页面进行布局,无论基础px值设置得多么好计算,在写rem数值的时候,都需要对设计图原始的px值进行一番换算。

      有没有工具可以辅助我们自动进行计算,我只要写px值就好了呢?当然是有的,编辑器其实就可以配置插件来对数值进行换算。但是有时候,我们在使用一些第三方ui库时,也想要对他们的px值进行转换,该怎么办呢?

      当当当当,来介绍一下两个好朋友,postcss-pxtorem 和 lib-flexible ,安装配置这两个依赖,我们就可以实现我们想要的功能啦。

      1. 首先,我们来安装一下这两个包

      npm安装方式:

    npm install amfe-flexible --save
    npm install postcss-pxtorem --save-dev

       yarn安装方式:

    yarn add amfe-flexible
    yarn add postcss-pxtorem --dev

      

      2. 在main.js中引入lib-flexible

    import 'amfe-flexible'

       3. 配置postcss-pxtorem

    • vue-cli2配置方式:

        在.postcss.js文件中的plugins下新增postcss-pxtorem的配置

    module.exports = {
      "plugins": {
        "postcss-pxtorem": {
            rootValue: 192, // 根据设计图尺寸写,设计图是1920,就写192
            propList: ['*'], // 需要被转换的属性
            selectorBlackList: [] // 不进行px转换的选择器
        }
      }
    }
    • vue-cli3配置方式:
        在根路径下新增postcss.config.js文件(如果有,就不新增)
        配置的内容与上相同
     
     
      完成上述步骤后,就可以愉快得使用设计图里的px值进行代码编写了。如果设计图的宽度是1920,则给rootValue设置192就行,lib-flexible会帮助我们计算好根字体。
      postcss-pxtorem也可单独使用,但是相应的我们得自己写一个根字体的计算代码,以及视图窗口大小变化的监听事件,比较起来,还是配合lib-flexible比较省时省力。
     
      PS:如果部分设计样式不想转换为rem,可以将 px 改为 PX ,就不会对该数值进行转换了,但是这一点在 calc 计算属性中是不生效的,开发模式下没有问题,但是打包时会出现编译错误(截至postcss-pxtorem 4.0.1版本哈,后续也许作者会修复这个问题),这个时候需要配合 selectorBlackList 来设置一个class来取消px的转换。
     
     
  • 相关阅读:
    Laravel自定义分页样式
    mysql中 key 、primary key 、unique key 和 index 有什么不同
    PHP RSA公私钥的理解和示例说明
    PHP操作Excel – PHPExcel 基本用法
    Yii 1.1 常规框架部署和配置
    阿里云服务器 Ubuntu 安装 LNMP
    全国地区sql表
    十道海量数据处理面试题与十个方法大总结
    Hibernate中对象的三种状态以及Session类中saveOrUpdate方法与merge方法的区别
    乐观锁与悲观锁——解决并发问题
  • 原文地址:https://www.cnblogs.com/happymental/p/12397384.html
Copyright © 2011-2022 走看看