Vant 中的样式默认使用
px作为单位,如果需要使用rem单位,推荐使用以下两个工具:
-
postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem
-
lib-flexible 用于设置 rem 基准值
一. 使用 lib-flexible 动态设置 REM 基准值(html 标签的字体大小)
- 安装
# yarn add amfe-flexible
npm i amfe-flexible
2、然后在 main.js 中加载执行该模块
import 'amfe-flexible'
二、使用 postcss-pxtorem 将 px 转为 rem
注意:不能改行内样式的px
1、安装
# yarn add -D postcss-pxtorem
# -D 是 --save-dev 的简写
npm install postcss-pxtorem@5.1.1 -D
2、然后在项目根目录中创建 .postcssrc.js 文件
/**
* PostCSS 配置文件
*/
module.exports = {
// 配置要使用的 PostCSS 插件
plugins: {
// 配置使用 autoprefixer 插件
// 作用:生成浏览器 CSS 样式规则前缀
// VueCLI 内部已经配置了 autoprefixer 插件
// 所以又配置了一次,所以产生冲突了
// 'autoprefixer': { // autoprefixer 插件的配置
// // 配置要兼容到的环境信息
// browsers: ['Android >= 4.0', 'iOS >= 8']
// },
// 配置使用 postcss-pxtorem 插件
// 作用:把 px 转为 rem
/*如果你使用的是基于 lib-flexable 的 REM 适配方案,则应该设置为你的设计稿的十分之一。
例如设计稿是 750 宽,则应该设置为 75。
但是 Vant 是基于 375 写的,所以如果你设置为 75 的话,Vant 的样式就小了一半。*/
// 如果是vant的样式,则按照37.5来转换
// 如果是自己的样式,按照75来转换
'postcss-pxtorem': {
rootValue({ file }) {
return file.indexOf('vant') !== -1 ? 37.5 : 75
},
propList: ['*']
}
}
}
3、配置完毕,重新启动服务
最后测试:刷新浏览器页面,审查元素的样式查看是否已将 px 转换为 rem。