一、rem介绍

rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。

px与rem的选择?
对于只需要适配少部分手机设备,且分辨率对页面影响不大的,使用px即可 。
对于需要适配各种移动设备,使用rem,例如只需要适配iPhone和iPad等分辨率差别比较挺大的设备。(用上肯定是更好的

二、适配解决思路

解决移动端适配问题的根本思路在于将px转换成rem
⑴ 使用postcss-px2rem-exclude可以将项目中的px自动转换成rem
⑵ 而amfe-flexible则可以根据不同型号的手机,进行相应的HTML根节点(font-szie)的初始化。

三、实现步骤

  1. 安装 postcss-px2rem-exclude
cnpm install postcss-px2rem-exclude --save
  1. 安装amfe-flexible
cnpm install amfe-flexible --save
  1. 在Vue项目中的main.js导入amfe-flexible
// 引入amfe-flexible做rem适配
import 'amfe-flexible';
  1. 配置postcss-px2rem- excluded
    在根目录下创建 .postcssrc.js文件,并配置如下:
module.exports = {plugins: {autoprefixer: {},'postcss-px2rem-exclude': {remUnit: 75,//1rem = 75px(iphone6的设计稿如此设置)exclude: /node_modules/i //忽略node_modules目录下的文件}}
}

remUnit的值怎么设置
amfe-flexible是按照屏幕宽度的十分之一来设置font-size的,所以我们remUnit的大小设置也应该是设计稿宽度的十分之一,这样css样式才会和设计稿一样.
lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。所以我们remUnit的大小设置也应该是设计稿宽度的十分之一,这样css样式才会和设计稿一样。

假如设计稿的宽度是750px,此时1rem应该等于75px。(如果remUnit设置为75,但设置稿是375px的,我们在css设置尺寸是需要将设计稿尺寸乘以2才匹配)
假如设计稿的宽度是375px,此时1rem应该等于37.5px。

为什么要忽略node_modules目录下的文件
有时候我们在手机端项目的时候需要导入第三方UI库,例如:vant,这时你就会发现第三方的组件样式都变小了,变小的主要原因是第三库 css一依据 data-dpr=“1” 时写死的尺寸,我们使用的flexible引入时 data-dpr不是一个写死了的,是一个动态的,就导致这个问题。

四、配置meta标签

<meta name="viewport" content="width=device-width,initial-scale=1.0">
<!-- 改为下面的mata标签,替换或者重复写都可以 -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">



参考博客:https://blog.csdn.net/u012878818/article/details/88190907
文章仅为本人学习过程的一个记录,仅供参考,如有问题,欢迎指出!
对博客文章的参考,若原文章博主介意,请联系删除!请原谅

vue使用lib-flexible和postcss-px2rem-exclude解决移动端适配问题相关推荐

  1. vue项目中使用lib-flexible解决移动端适配

    第一部分:项目中引入lib-flexible 一.项目中安装lib-flexible $ npm install lib-flexible --save 二.在项目的入口js文件中引入lib-flex ...

  2. flexible.js+rem解决pc端适配

    第一步:新建 flexible.js文件 这里默认是10等份,手动改为24,此时1rem=1920/24px即80px.(设计稿是1920px的) (function flexible(window, ...

  3. vue中使用flexible.js并配合px2rem-loader实现移动端布局

    适配移动端flexible.js 适用于最新版vue-cli,配置手淘的lib-flexible.js和rem实现移动端页面自适应 1.安装lib-flexible.js npm install li ...

  4. Vue 报错Error: No PostCSS Config found解决办法

    从git上 clone 下来的代码: npm install 安装依赖以后,启动服务,出现Error: No PostCSS Config found报错: npm run dev 解决办法: 在项目 ...

  5. VUE pc端适配移动端H5

    需要安装两个插件 postcss-pxtorem 和 lib-flexible 直接安装postcss-pxtorem插件,报错" Error: PostCSS plugin postcss ...

  6. vue做移动端适配最佳解决方案,亲测有效

    最近在做商城的项目,发现有赞的ui非常适合,但有一个问题是有赞的ui用的单位是px,做不了移动端的适配,官网的提供的vw适配方案发现不可行,最后还是决定rem来做适配,上网搜了一下,发现了一套可用方案 ...

  7. Vue CLI3 移动端适配 【px2rem 或 postcss-plugin-px2rem】

    今天,我们使用Vue CLI3 做一个移动端适配 . 前言 首先确定你的项目是Vue CLI3版本以上的. 一.移动端适配包 1.安装移动端适配包 npm i lib-flexible -S 2.在m ...

  8. cli3 px转rem适配移动端_Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)

    今天,我们使用vue cli3 做一个移动端适配 . 前言 首先确定你的项目是vue cli3版本以上的. 一.移动端适配包 1.安装移动端适配包 npm i lib-flexible -s 2.在 ...

  9. html px2rem转化器,【技术】移动端适配 px2rem/px2vw 的原理与实现

    简介 [目标]:前端开发移动端及H5时候,不需要再关心移动设备的大小,只需要按照固定设计稿的px值布局! [基础] dpr(设备像素比) css的像素px不等于设备像素/分辨率/各种值,css的px可 ...

最新文章

  1. LeetCode实战:设计循环双端队列
  2. excel图片变成代码_三行代码把女朋友照片变成了素描图片!以为我画的!爱我爱的不行...
  3. mysql 自后向前截取函数_【转载】Sqlserver使用Right函数从最右边向前截取固定长度字符串...
  4. Oracle入门(十四D)之常规函数
  5. LeetCode 1837. K 进制表示下的各位数字总和
  6. LeetCode 553. 最优除法(数学)
  7. 安装CentOS6.2操作系统
  8. oracle9i的erp数据库无法正常关闭的解决方法。
  9. 在mathtype中怎么打出花体字母
  10. 【Docker】拉取Oracle 11g镜像配置
  11. python下载文件的11种方式_python 下载文件的多种方法汇总
  12. linux dhcpv6 客户端,Linux(RedHat6.4)下配置radvd和dhcpv6
  13. python信用卡管理源码_Python随机生成信用卡卡号的实现方法
  14. 1、什么是公众号appid?
  15. 人人都要有底层逻辑 - 底层逻辑一定要围绕人
  16. 使用telnet登陆smtp服务发邮件(带身份验证)
  17. ice通信原理_通信原理_知到网课答案
  18. HyperMesh快捷键、鼠标操作、键盘操作
  19. L3-031 千手观音 拓扑排序+哈希表
  20. 操作系统原理学习笔记(基础概念与进程)

热门文章

  1. python 转义字符 html 爬虫
  2. 英格兰功勋老将或赛季后退役:身体已吃不消
  3. Synology DS1621+ 与QNAP TS-653D NAS比较 应该买哪一个?怎么选
  4. P1141 Caesar密码 OJ
  5. JZ2440 数码相框项目 扩展项目介绍
  6. pip install suds
  7. idea怎么查看svn历史记录
  8. 软考高级信息系统项目管理师系列之三十五:组织级项目管理
  9. betwin V.419 实现一台电脑变两台!实用设置案例
  10. Python实现对图像进行掩膜遮罩处理