vue中使用rem插件做适配

本文介绍了在Vue项目中如何利用amfe-flexible和postcss插件进行屏幕适配,通过设置remUnit和postcss配置,简化px到rem的转换。在vuecli4中,按照文中的步骤配置,而在vuecli5中,需要更新插件并创建postcss.config.js文件进行配置。

为什么要使用rem插件?
因为每台手机的屏幕大小都不一致,需要通过屏幕大小的不同
来适配各个手机上展示页面的效果,这是需要通过rem插件来
动态的修改。

用了这个插件方便之处在于哪里?
方便之处在于:设计师给你的移动端设计稿,上面标注了
多少的px,你就直接写多少px就可以了,不需要动脑计算
转化为多少rem。

1、安装两个插件
屏幕自适应插件
npm i amfe-flexible --save
把px转成rem的插件
只能在css文件里面写 <style>里面的npm i postcss-px2rem --save

2、main.js引入 
import rem from 'amfe-flexible'
为了全局使用rem 插件需要use一下
Vue.use(rem)

3、package.json中添加如下代码:
"remUnit":75表示 ui小姐姐给的图 是按照750px这个尺寸设计的
"postcss":{
    "plugins":{
      "autoprefixer":{},
      "postcss-px2rem":{
        "remUnit":75
      }
    }
  }

4、修改了 src路径不需要重启,但是修改了配置项 需要重新启动 npm run serve

5、需要在css中设置样式,在行内样式style里面写无效
.s1{
  /* 30px/75=0.4rem */
  font-size:30px;
}

6、html的根元素 font-size会根据屏幕的变化而变化 但是元素rem值

### Vue3 中使用 REM 进行页面适配 #### 1. 创建自定义 REM 配置文件 为了使项目能够根据屏幕尺寸动态调整元素大小,在 `src/util` 文件夹内创建名为 `rem.js` 的配置文件。此文件用于设定基础字号以及计算不同设备上的缩放比例。 ```javascript // src/util/rem.js const baseSize = 16; // 设定基准字体大小为16px function setRem() { let scale = document.documentElement.clientWidth / 1920; document.documentElement.style.fontSize = `${baseSize * Math.min(scale, 2)}px`; } setRem(); // 页面加载时初始化设置REM值 window.addEventListener('resize', setRem); // 监听窗口变化事件并更新REM值[^3] ``` #### 2. 修改 HTML 结构中的样式单位 确保所有的 CSS 定义都采用相对单位(如 em 或 rem),而不是绝对像素(px),以便于跟随根元素(`html`)的 font-size 变化而自动调整组件的实际显示尺寸。 对于大多数情况来说,推荐优先选用 `rem` 单位来代替固定的 px 数值,因为这可以使得整个应用更加灵活地应对不同的屏幕分辨率和方向切换等问题[^4]。 #### 3. 应用到全局样式表 为了让上述逻辑生效,需将其引入项目的入口文件 (通常是 main.ts 或者 app.vue): ```typescript import './assets/styles/global.css'; import '@/utils/rem'; // 导入REM适配脚本 ``` 同时也要记得在全局样式文件中统一转换成基于 `rem` 的设计稿尺寸映射关系,从而保证视觉效果的一致性和可维护性。 通过这种方式可以在不依赖额外插件的情况下轻松完成对多种终端的良好支持,并且保持较高的性能表现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值