首先须要安装postcss-plugin-px2rem
css
npm install --save-dev postcss-plugin-px2rem
复制代码
能够在package.json
中配置npm
var px2rem = require('postcss-px2rem');
module.exports = {
module: {
loaders: [
{
test: /\.css$/,
loader: "style-loader!css-loader!postcss-loader"
}
]
},
postcss: function() {
return [px2rem({remUnit: 75})];
}
}
复制代码
通常postcss建议单独配置在文件postcss.config.js
中,json
module.exports = {
plugins: [
require('autoprefixer')({ browsers: 'last 2 versions' }),
require('postcss-px2rem')({remUnit: 75})
]
}
复制代码
REM是根据根结点来计算各个子节点的值,因此根结点也要作响应式变化。定义一个utils/setRem.js
bash
export default function setRem(baseWidth = 750) {
const dpr = window.devicePixelRatio;
const currentWidth = document.documentElement.clientWidth;
let remSize = 0;
let scale = 0;
scale = currentWidth / baseWidth;
remSize = baseWidth / 10;
remSize = remSize * scale;
document.documentElement.style.fontSize = remSize + 'px';
document.documentElement.setAttribute('data-dpr', `${dpr}`);
}
复制代码
在index.js
中引入便可post
import setRem from './utils/setRem'
setRem()
复制代码