postcss-px2rem在项目中使用可以进行px自动转换为rem单位,但其也有利弊如下:
- 优点:可以实现边编辑边转换,在开发手机网站是可以很 高效率的工作
- 缺点:在浏览器器里面调式px,并不太方便
但总归是利大于弊,现在 移动端 还是非常火热.......
1. 首先需要安装postcss-plugin-px2rem。
npm install --save-dev postcss-px2rem
复制代码
2. vue结尾文件引用vue-loader.config.js中的配置
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap
/*引入postcss-px2rem 通过require的形式*/
var px2rem = require('postcss-px2rem');
module.exports = {
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction,
/*允许使用usePostCSS*/
usePostCSS:true,
}),
cssSourceMap: sourceMapEnabled,
cacheBusting: config.dev.cacheBusting,
transformToRequire: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
},
/*配置remUnit*/
postcss: function() {
return [px2rem({remUnit: 37.5})];
}
}
复制代码
4. remUnit为1rem应的px值,可以自己进行定义
5. 此时重启项目发现px的值已经在浏览器都换算为rem,但是单位与我们想要不一致。因为rem是根据根元素继承,所以我们需要去更改根元素的font-size
6.在index.html页面中引入,设置比例与remUnit相同即可
<script>document.getElementsByTagName('html')[0].style.fontSize = (document.documentElement.clientWidth || document.body.clientWidth) /10 + 'px';</script>
复制代码