vue 怎么实现rem
实现 Vue 项目中的 rem 适配
在 Vue 项目中实现 rem 适配,可以通过以下步骤完成。rem 是一种相对单位,基于根元素(html)的字体大小进行计算,适合响应式布局。
安装 postcss-pxtorem 插件
使用 postcss-pxtorem 插件可以将项目中的 px 单位自动转换为 rem 单位。安装插件:

npm install postcss-pxtorem -D
配置 postcss-pxtorem
在项目根目录下的 postcss.config.js 文件中配置插件。如果没有该文件,可以新建一个:

module.exports = {
plugins: {
'postcss-pxtorem': {
rootValue: 16, // 设计稿宽度 / 10,例如设计稿宽度为 750px,则设置为 75
propList: ['*'], // 需要转换的属性列表,* 表示全部
selectorBlackList: [], // 忽略的选择器
replace: true,
mediaQuery: false,
minPixelValue: 0
}
}
}
动态设置根字体大小
在项目的入口文件(如 main.js)中,添加以下代码动态设置根字体大小:
function setRem() {
const baseSize = 16; // 基准大小,与 postcss-pxtorem 中的 rootValue 一致
const scale = document.documentElement.clientWidth / 1920; // 设计稿宽度
document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px';
}
setRem();
window.addEventListener('resize', setRem);
使用 rem 单位
在 Vue 组件中,可以直接使用 px 单位编写样式,postcss-pxtorem 会自动将其转换为 rem。例如:
.container {
width: 100px; // 编译后会自动转换为 rem
height: 50px;
}
注意事项
- 设计稿宽度通常为 750px 或 1920px,需根据实际情况调整
rootValue和动态计算的比例。 - 如果需要忽略某些样式不被转换,可以在
selectorBlackList中添加选择器。 - 对于第三方 UI 库,可能需要额外配置以避免样式冲突。






