当前位置:首页 > VUE

vue实现rem适配

2026-02-10 21:42:16VUE

vue实现rem适配的方法

安装postcss-pxtorem插件

在项目根目录下运行命令安装插件:

npm install postcss-pxtorem -D

配置postcss.config.js

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

module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5, // 设计稿宽度/10,如375设计稿就写37.5
      propList: ['*'],
      selectorBlackList: ['.norem'] // 过滤掉.norem开头的class,不进行rem转换
    }
  }
}

创建rem.js工具文件

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

// 基准大小
const baseSize = 37.5
// 设置 rem 函数
function setRem() {
  // 当前页面宽度相对于 375 宽的缩放比例,可根据自己需要修改。
  const scale = document.documentElement.clientWidth / 375
  // 设置页面根节点字体大小
  document.documentElement.style.fontSize = baseSize * Math.min(scale, 2) + 'px'
}
// 初始化
setRem()
// 改变窗口大小时重新设置 rem
window.onresize = function() {
  setRem()
}

在main.js中引入rem.js

在项目入口文件main.js中添加:

import '@/utils/rem.js'

编写CSS时直接使用px单位

在编写样式时直接使用px单位,插件会自动转换为rem:

.title {
  font-size: 14px; /* 会自动转换为rem单位 */
}

注意事项

设计稿尺寸建议使用375px宽度(iPhone6/7/8尺寸),这样rootValue设置为37.5时,1rem=37.5px。如果是750px的设计稿,rootValue应设置为75。

不需要转换的样式可以添加.norem前缀:

vue实现rem适配

.norem {
  border: 1px solid #ccc; /* 不会被转换为rem */
}

标签: vuerem
分享给朋友:

相关文章

vue实现列表显示

vue实现列表显示

Vue 实现列表显示的方法 在 Vue 中实现列表显示通常使用 v-for 指令,结合数组或对象数据渲染动态列表。以下是几种常见的实现方式。 基本列表渲染 通过 v-for 指令遍历数组,动态生成列…

vue实现a

vue实现a

Vue 实现 A 功能的方法 在 Vue 中实现 A 功能可以通过多种方式,具体取决于 A 功能的具体需求。以下是几种常见的实现方法: 使用 Vue 组件 通过创建自定义组件来实现 A 功能。组件可…

vue实现frame

vue实现frame

Vue 中实现 iframe 的方法 在 Vue 中可以通过直接使用 <iframe> 标签或动态绑定 src 属性来实现 iframe 功能。 基本用法 <template&g…

vue 实现拖动

vue 实现拖动

Vue 实现拖动的几种方法 在Vue中实现拖动功能可以通过多种方式,包括原生HTML5的拖放API、第三方库如vuedraggable等。以下是几种常见的实现方法: 使用HTML5拖放API HTM…

vue监听实现

vue监听实现

Vue 监听实现方法 在 Vue 中可以通过多种方式实现监听数据变化或事件触发,以下是常见的几种方法: 使用 watch 选项 watch 是 Vue 提供的核心功能之一,用于观察和响应 Vue 实…

vue实现白板

vue实现白板

Vue实现白板功能 使用Vue实现白板功能可以通过HTML5的Canvas API结合Vue的响应式特性来完成。以下是实现白板功能的关键步骤: 安装依赖 在Vue项目中安装必要的依赖,如vue-dr…