Vue项目自动转换 px 为 rem

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;
}
注意:此方法支持import 和 .vue单文件中style。不支持标签里面style样式!!!
拿着 不谢 请叫我“锤” 谢谢!!!

猜你喜欢

转载自blog.csdn.net/hammer1010/article/details/90404352