当前位置:首页 > 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文件:

vue实现rem适配

// 基准大小
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:

vue实现rem适配

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

注意事项

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

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

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

标签: vuerem
分享给朋友:

相关文章

vue伪函数实现

vue伪函数实现

Vue 伪函数实现方法 伪函数(Mock Function)在 Vue 中常用于测试或模拟某些逻辑,以下是几种常见的实现方式: 使用 Jest 的 jest.fn() 在单元测试中,可以通过 Jes…

vue点击实现排序

vue点击实现排序

实现点击排序的方法 在Vue中实现点击排序功能,可以通过以下几种方式完成: 使用计算属性结合排序方法 定义一个响应式数据存储排序状态,通过计算属性动态返回排序后的数组。点击事件切换排序状态。…

vue卖座网实现

vue卖座网实现

Vue 卖座网实现 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 Vue Router、Vuex、Axios。 创建核心目录结构:components(通用组件)、views(页…

代码实现vue

代码实现vue

创建Vue项目 使用Vue CLI快速初始化项目,确保已安装Node.js和npm/yarn: npm install -g @vue/cli vue create my-vue-project c…

vue实现drag

vue实现drag

Vue 实现拖拽功能的方法 在 Vue 中实现拖拽功能可以通过原生 HTML5 的拖拽 API 或第三方库如 vuedraggable 来完成。以下是两种常见方法的实现方式。 使用 HTML5 拖…

vue实现tag

vue实现tag

Vue 实现标签(Tag)功能 在 Vue 中实现标签(Tag)功能可以通过多种方式完成,以下是一些常见的方法和实现步骤: 使用动态组件和 v-for 通过 v-for 指令动态渲染标签列表,结合…