Vue项目自动转换 px 为 rem
前提条件
1.脚手架vue-cli 搭建好
2.vue项目可以正常运行
1、创建rem.js文件
创建一个utils文件,添加一个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'
二、下一步我们就配置一下webpack,自动转换px为对应的rem值。
postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem
1、npm 安装 postcss-pxtorem
$ npm install postcss-pxtorem -D
2、修改根目录 .postcssrc.js 文件
//假设设计稿750宽,这里设置简单说明一下(没说的是我还没弄明白或者是不重要的?):
"postcss-pxtorem": {
"rootValue": 32, //如果rootValue(配率)10 ==> 相当于20px == 20/10 == 2rem
"propList": ["*"]
}
//rootValue为75,说是对根元素大小进行设置。可能类似px2rem中的remUnit参数吧
//propList是一个存储哪些将被转换的属性列表,这里设置为['*']全部
原本样式
.company-name {
line-height: 80px;
color: grey;
border-bottom: 1px solid #f4f4f4;
}
转换后样式
.company-name{
line-height: 2.5rem;
color: grey;
border-bottom: 0.03125rem solid #f4f4f4;
}