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

技术栈


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


自动设置根节点html的font-size

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

1、创建rem.js文件

​// 基准大小 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": ["*"] }​

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

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

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

将被转换为

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

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