欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue如何进行移动端适配方案

程序员文章站 2022-03-12 21:41:35
Vue移动端适配写在前面二级目录三级目录写在前面此文章需要使用到Vue CLI搭建项目,同时使用的是阿里的二级目录三级目录...

写在前面

  • 现在的手机五花八门,造就了移动端窗口分辨率繁多的局面。
  • 在不同分辨率的屏幕下保持与UI图一致的效果,就成了让前端不得不头疼的问题。
  • 本文采取的适配方案:阿里推出的lib-flexible + rem适配方案。
  • 大致思路:安装lib-flexible相关第三方插件,用于自动设置HTML根元素的基准值。我们写代码时,利用rem单位去书写样式。
  • lib-flexible的GitHub

使用到的两个工具介绍

工具一:lib-flexible —— 用于自动设置 rem 基准值

  • 1、安装
npm i -S amfe-flexible

很多文章还是使用的npm i lib-flexible -S,但是已经不被推荐,具体可看GitHub:
Vue如何进行移动端适配方案

  • 2、在main.js引入
import 'amfe-flexible'
  • 3、看具体效果:我们在切换不同设备时,在右边的代码中可以看到html标签的font-size一直在改变。看到这样的效果就说明成功了。
    Vue如何进行移动端适配方案

在效果图中我们看到一个规律,就是font-size永远都是屏幕分辨率的十分之一。如下:
Vue如何进行移动端适配方案

这也是lib-flexible规定的,具体可看源码第18行。如下:
Vue如何进行移动端适配方案

工具二:postcss-pxtorem —— 是一款 postcss 插件,用于将单位转化为 rem

使用了lib-flexible之后,我们的rem适配第一步已经完成了。第二部就是在写代码时使用rem单位,而不是我们熟悉的px单位。我们不能再使用px了,而是先将设计图的px单位根据相应的公式,转换成rem,最终将rem写在代码里。
设计图这么多的px单位最终要手动转成rem,是一个人都会被烦死。
所以:postcss-pxtorem出现了,他会手动将我们代码中的px单位自动转换成rem。
也就是说,设计图时多少px,我们在代码里就写多少px,postcss-pxtorem最终会将这个px转换成rem。
它是一个开发时依赖。

  • 1、安装
npm install postcss-pxtorem -D
  • 2、配置
    配置一:在项目的根目录下创建:postcss.config.js文件,并且添加如下配置:
plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5,
      propList: ['*']
    }
  }

rootValue:表示根元素字体大小,它会根据根元素大小进行单位转换。

1、在上面就提到过,lib-flexible最终转换html元素的font-size是手机屏幕的十分之一,所以这个rootValue的值是根据我们的设计稿来设置的。
2、由于我的设计稿是通过iphone6做为原型设计的,宽度是375,所以在这里我rootValue的值为37.5。
3、如果你的设计稿宽度是750,那么rootValue的值为75。
4、如果你使用的UI库是Vant,那么这个rootValue的值就必须设置为37.5,因为 Vant 是基于逻辑像素 375 写的,所以如果你设置为 75 的话,Vant 的样式就小了一半。
5、如果设计稿就是750,我们在测量设计稿的时候都必须除2才能使用,否则就会变得很大。不想除就找UI把设计图变成0.5倍图,也就是宽为375。

propList:用来设定可以从 px 转为 rem 的属性,例如 * 就是所有属性都要转换,width 就是仅转换 width 属性,值一般为*。
配置二:browserslist:你会发现在 package.json 文件里的 browserslist 字段 (或一个单独的 .browserslistrc 文件),指定了项目的目标浏览器的范围。这个值会被 @babel/preset-env 和 Autoprefixer 用来确定需要转译的 JavaScript 特性和需要添加的 CSS 浏览器前缀。
如果你是Vue CLI4.x创建的项目,找到packages.json,并将browserslist字段的配置修改如下:表示咱们的系统向下兼容到安卓4.0版本,IOS8版本。
Vue如何进行移动端适配方案

如果你是Vue CLI3.x创建的项目,找将项目根目录下的.browserslistrc 文件修改如下:
Vue如何进行移动端适配方案

  • 3、配置结束后需要将项目npm run 重启一下即可生效。

  • 4、怎么样判断是否生效:打开浏览器控制台,如果我们在代码中写的px都转换成rem了,表示成功。如下:
    Vue如何进行移动端适配方案

  • 5、注意:在vue单文件中,包含在style内的px单位会自动转换成rem,但是行内样式中的px单位不会转换成rem。

效果

Vue如何进行移动端适配方案
Vue如何进行移动端适配方案
Vue如何进行移动端适配方案
在不同设备下可以得到相同的效果,即rem适配成功。

本文地址:https://blog.csdn.net/weixin_43242112/article/details/112193205

相关标签: vue css html