前端开发中还原设计图的重要性毋庸置疑,目前来说应用最多的应该也还是使用rem。然而很多人依然还是处于刀耕火种的时代,要么自己去计算
rem
值,要么依靠编辑器安装插件转换。而本文的目标就是通过一系列的配置后,在开发中可以直接使用设计图的尺寸开发,项目为我们自动编译,转换成
rem
。
技术栈
自动设置根节点html
的font-size
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
。
配置 postcss-pxtorem
自动转换px为rem
$ 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();
px;margin:auto;margin-top:12px" class="blog-extension-box">