1.安装依赖:
cnpm i px2rem-loader lib-flexible -D
2.配置:
module.exports = {
chainWebpack: config => {
config.module
.rule('css')
.test(/\.css$/)
.oneOf('vue')
.resourceQuery(/\?vue/)
.use('px2rem')
.loader('px2rem-loader')
.options({
remUnit: 100 //100px代表1rem
})
}
}
3.我们需要在html中引入计算根元素的js模块
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="../node_modules/lib-flexible/flexible.js"></script>
<link rel="stylesheet" href="./main.css">
</head>
<body>
<p>我的世界</p>
<div></div>
</body>
</html>
配置完成,打包即可。
下面我们来对比转换前后的变化
转换前:
body{
border: 1px solid red;
width: 100%;
}
div{
width: 375px;
height: 200px;
background: red;
}
转换后:
body {
border: 0.01333333rem solid red;
width: 100%;
}
div {
width: 5rem;
height: 2.66666667rem;
background: red;
}