当前位置:首页 > VUE

vue实现rem适配

2026-03-07 21:33:43VUE

使用 postcss-pxtorem 插件实现 rem 适配

在 Vue 项目中安装 postcss-pxtorem 插件

npm install postcss-pxtorem -D

配置 postcss.config.js 文件

module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5, // 设计稿宽度/10
      propList: ['*'],
      selectorBlackList: ['.norem'] // 过滤掉.norem开头的class
    }
  }
}

动态设置 html 的 font-size

在项目入口文件 main.js 中添加以下代码

function setRem() {
  const docEl = document.documentElement
  const width = docEl.clientWidth
  const rem = width / 10
  docEl.style.fontSize = rem + 'px'
}

window.addEventListener('resize', setRem)
setRem()

使用 flexible.js 方案实现 rem 适配

下载 flexible.js 并引入项目

vue实现rem适配

// 在 index.html 中引入
<script src="/path/to/flexible.js"></script>

配置 postcss-pxtorem

module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 75, // 750px设计稿
      propList: ['*'],
      minPixelValue: 2
    }
  }
}

使用 viewport 单位替代 rem

安装 postcss-px-to-viewport 插件

vue实现rem适配

npm install postcss-px-to-viewport -D

配置 postcss.config.js

module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      viewportWidth: 750, // 设计稿宽度
      unitPrecision: 5,
      viewportUnit: 'vw',
      selectorBlackList: [],
      minPixelValue: 1,
      mediaQuery: false
    }
  }
}

注意事项

设计稿尺寸通常为750px时,rootValue设置为75;375px设计稿设置为37.5

移动端项目需要在index.html中添加viewport meta标签

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">

对于不想转换的样式,可以使用PX或Px作为单位,或者在selectorBlackList中配置过滤规则

标签: vuerem
分享给朋友:

相关文章

vue实现自动翻译

vue实现自动翻译

Vue 实现自动翻译的方法 在 Vue 项目中实现自动翻译功能可以通过多种方式完成,以下是几种常见的方法: 使用第三方翻译 API 注册并获取翻译 API 的密钥(如 Google Translat…

vue实现分类

vue实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue 实现拖动

vue 实现拖动

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

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue实现尺子

vue实现尺子

Vue 实现尺子组件 实现一个尺子组件可以通过 Canvas 或纯 CSS 完成。以下是两种常见实现方式: 使用 Canvas 绘制尺子 通过 Canvas 动态绘制刻度线和数字,适合需要高精度或动…

vue实现数据

vue实现数据

Vue 实现数据绑定的方法 Vue.js 提供了多种方式实现数据绑定,包括双向绑定、单向绑定以及动态数据绑定。以下是几种常见的实现方式: 双向数据绑定(v-model) 双向数据绑定通常用于表单元素…