首先須要安裝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()
複製代碼