• wordpress CMS主题:ssmay主题 wordpress CMS主题:ssmay主题
  • 首页 > 前端开发 > Vue项目自动转换 px 为 rem,高保真还原设计图

    Vue项目自动转换 px 为 rem,高保真还原设计图

    作者: 分类:前端开发 点击: 802 次
    wordpress CMS主题:ssmay主题

      扫描下面的二维码,“关注”我的百家号。

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

      而本文的目标就是通过一系列的配置后,在开发中可以直接使用设计图的尺寸开发,项目为我们自动编译,转换成rem

      技术栈

      • vue-cli:使用脚手架工具创建项目。
      • postcss-pxtorem:转换px为rem的插件。

      自动设置根节点htmlfont-size

      因为rem单位是相对于根节点的字体大小的,所以通过设置根节点的字体大小可以动态的改变rem的大小。

      原理网上有很多文章分享,这里不具体解释。

      1、创建rem.js文件

      很多人写这种小工具文件会习惯性的加上闭包,这个其实是没有必要的。ES6中每个文件都是单独的一个模块。

      // 基准大小
      const baseSize = 32
      // 设置 rem 函数
      function setRem () {
        // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。
        const scale = document.documentElement.clientWidth / 750
        // 设置页面根节点字体大小
        document.documentElement.style.fontSize = (baseSize * Math.min(scale, 2)) + 'px'
      }
      // 初始化
      setRem()
      // 改变窗口大小时重新设置 rem
      window.onresize = function () {
        setRem()
      }
      
      

      2、在main.js中引入rem.js

      import './utils/rem'
      

      引入文件后,查看页面的html节点,是否有被自动添加 font-size

      注意:完成到这一步,也就是实现了rem布局,实际开发的时候,还是需要我们去计算对应的rem值去开发。

      下一步我们就配置一下webpack,自动转换px为对应的rem值。

      配置 postcss-pxtorem 自动转换px为rem

      1、安装 postcss-pxtorem

      $ npm install postcss-pxtorem -D
      

      2、修改根目录 .postcssrc.js 文件

      找到 plugins 属性新增pxtorem的设置

      "postcss-pxtorem": {
        "rootValue": 32,
        "propList": ["*"],
        // 注意:如果有使用第三方UI如VUX,则需要配置下忽略选择器不转换。
        // 规则是class中包含的字符串,如vux中所有的class前缀都是weui-。也可以是正则。
        "selectorBlackList": ["weui-"]
      }
      

      按照上述配置项目后,即可在开发中直接使用 px 单位开发。

      例如设计给出的设计图是 750 * 1136,那么可以直接在页面中写

      body {
      	width: 750px;
      	height: 1136px;
      }
      

      将被转换为

      body {
      	widht: 23.4375rem;
      	height: 35.5rem;
      }
      

      注意:此方法支持import.vue单文件中style。暂不支持style中使用@import url();

      ---End---



      欢迎“关注”我的百家号。

      头条二维码
      加入我的QQ群
      头条二维码
      关注我的百家号

    文章作者:sunny
    本文地址:http://wanlimm.com/77202006218440.html
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

    您的电子邮箱地址不会被公开。 必填项已用*标注

    此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据