在使用 vant 完成移动端项目时, 如果需要使用 rem 单位实现适配 ( Vant 中的样式默认使用 px 单位), 推荐使用 lib-flexible (设置 rem 基准值) 和 postcss-pxtorem (将单位转化为 rem )
一、使用 lib-flexible 动态设置 REM 基准值(html 标签的字体大小)
安装: yarn add amfe-flexible
导入: 在 main.js 文件中执行模块 import 'amfe-flexible'
二、使用 postcss-pxtorem 将 px
转为 rem
安装: yarn add postcss-pxtorem@5.1.1 -D
配置:
在项目根目录中创建 .postcssrc.js 或 postcss.config.js 文件
module.exports = {
plugins: {
// 自动添加浏览器前缀的 PostCss 插件
'autoprefixer': {
// browsers 用来配置兼容的浏览器版本信息
browsers: ['Android >= 4.0', 'iOS >= 8']
},
// postcss-pxtorem 插件的版本需要 >= 5.0.0
'postcss-pxtorem': {
rootValue({ file }) { // 如果是vant的就按照375 尺寸, 如果是其他的(二倍设计图)就是按照750
return file.indexOf('vant') !== -1 ? 37.5 : 75; // rootValue 的值一般是设计稿1/10
},
propList: ['*'],
},
},
};
rootValue : 表示根元素字体大小, 会根据更元素大小进行单位转换
propList : 用来设定可以从px 转为 rem 的属性 // * 表示所有属性都要转换
VueCLI 内部已经配置了 autoprefixer 插件, 无需再配, 再配会产生冲突
// 该插件无法转换行内样式中的 px
配置完, 重启服务器