当前位置:首页 > VUE

vue cli怎么实现rem

2026-02-25 06:35:06VUE

Vue CLI 实现 rem 适配方案

在 Vue CLI 项目中实现 rem 适配,通常需要结合 postcss-pxtorem 插件和动态设置根字体大小。以下是具体实现步骤:

安装 postcss-pxtorem

通过 npm 或 yarn 安装 postcss 插件:

npm install postcss-pxtorem -D
# 或
yarn add postcss-pxtorem -D

配置 postcss.config.js

在项目根目录创建或修改 postcss.config.js 文件:

module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 16, // 基准值,1rem = 16px
      propList: ['*'], // 转换所有属性
      selectorBlackList: [/^html$/], // 排除 html 标签
    },
  },
};

动态设置根字体大小

src/utils 目录下创建 rem.js 文件:

// 基准大小
const baseSize = 16;

function setRem() {
  const scale = document.documentElement.clientWidth / 1920; // 设计稿宽度
  document.documentElement.style.fontSize = `${baseSize * Math.min(scale, 2)}px`;
}

// 初始化
setRem();
// 窗口变化时重置
window.onresize = function() {
  setRem();
};

在 main.js 中引入

在项目入口文件 src/main.js 中引入 rem 设置:

import './utils/rem';

可选:使用 lib-flexible

作为替代方案,可以安装 amfe-flexible 自动处理适配:

npm install amfe-flexible -S

然后在 main.js 中引入:

import 'amfe-flexible';

注意事项

  1. 设计稿测量值需直接填写像素值,插件会自动转换为 rem
  2. 对于不想转换的样式,可通过 PX 单位绕过转换
  3. 移动端项目建议将 rootValue 设置为设计稿宽度/10(如750设计稿设为75)

以上方案实现了:

vue cli怎么实现rem

  • 开发时直接使用设计稿像素值
  • 自动转换为 rem 单位
  • 根据屏幕宽度动态调整根字体大小
  • 完美适配各种屏幕尺寸

标签: vuecli
分享给朋友:

相关文章

简易实现vue

简易实现vue

简易 Vue 实现思路 核心是数据劫持结合发布-订阅模式,通过 Object.defineProperty 或 Proxy 监听数据变化,触发视图更新。 数据劫持实现 class Observer…

vue实现tab标签

vue实现tab标签

Vue 实现 Tab 标签的方法 使用动态组件和 v-for 渲染标签 通过 v-for 循环生成标签页标题,结合 v-bind:class 动态切换激活状态。使用 v-show 或动态组件 <…

vue实现滚动截屏

vue实现滚动截屏

实现滚动截屏的基本思路 滚动截屏通常指对超出可视区域的长页面进行完整截图。在Vue中,可以通过结合DOM操作、Canvas绘制及第三方库实现。以下是具体方法: 使用html2canvas库实现 安装…

在线脑图 vue 实现

在线脑图 vue 实现

在线脑图 Vue 实现方案 使用开源库实现 推荐使用 mind-elixir 或 jsmind 这类开源库,它们专为脑图设计且支持 Vue 集成。 安装依赖: npm install mind-e…

vue实现$.extend

vue实现$.extend

Vue 实现类似 jQuery 的 $.extend 功能 在 Vue 中实现类似 jQuery 的 $.extend 功能,可以通过多种方式完成。$.extend 主要用于合并多个对象的属性,Vue…

mvvm实现vue

mvvm实现vue

MVVM 模式在 Vue 中的实现 MVVM(Model-View-ViewModel)是一种前端架构模式,Vue 的设计灵感来源于此。以下是 MVVM 在 Vue 中的核心实现方式: 数据绑定(M…