vue项目中使用lib-flexible解决移动端适配的问题解决


Posted in Javascript onAugust 23, 2018

第一部分:项目中引入lib-flexible

一、项目中安装lib-flexible

$ npm install lib-flexible --save

二、在项目的入口js文件中引入lib-flexible

import 'lib-flexible'

通过要以上两步,就完成了在vue项目使用lib-flexible来解决移动端适配了。

lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。假如设计稿的宽度是750px,此时1rem应该等于75px。假如量的某个元素的宽度是150px,那么在css里面定义这个元素的宽度就是 width: 2rem

注意:

    1.检查一下html文件的head中,如果有 meta name="viewport"标签,需要将他注释掉,因为如果有这个标签的话,lib-flexible就会默认使用这个标签。而我们要使用lib-flexible自己生成的 meta name="viewport"来达到高清适配的效果。

    2.因为html的font-size是根据屏幕宽度除以10计算出来的,所以我们需要设置页面的最大宽度是10rem。

    3.如果每次从设计稿量出来的尺寸都手动去计算一下rem,就会导致我们效率比较慢,还有可能会计算错误,所以我们可以使用px2rem-loader自动将css中的px转成rem

第二部分:使用px2rem-loader自动将css中的px转换成rem

一、安装px2rem-loader

$ npm install px2rem-loader --save-dev

二、配置px2rem-loader

1.打开build/utils.js文件,找到exports.cssLoaders方法,在里面添加如下代码

const px2remLoader = {
  loader: 'px2rem-loader',
  options: {
   remUint: 75
  }
 }

2.修改generateLoaders方法中的loaders

// 注释掉这一行
// const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
// 修改为
const loaders = [cssLoader, px2remLoader]
 
if (options.usePostCSS) {
 loaders.push(postcssLoader)
}

然后重新npm run dev,打开控制台可以看到代码中的px已经被转成了rem

注意:

1.此方法只能将.vue文件style标签中的px转成rem,不能将script标签和元素style里面定义的px转成rem

2.如果在.vue文件style中的某一行代码不希望被转成rem,只要在后面写上注释 /* no*/就可以了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery开发者都需要知道的5个小技巧
Jan 08 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
Nov 02 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
Jun 30 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
Jul 22 Javascript
bootstrap基础知识学习笔记
Nov 02 Javascript
关于vue.js v-bind 的一些理解和思考
Jun 06 Javascript
jquery实现用户登陆界面(示例讲解)
Sep 06 jQuery
详解关于微信setData回调函数中的坑
Feb 18 Javascript
js实现中文实时时钟
Jan 15 Javascript
从零开始学习搭建React脚手架项目
Aug 23 #Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 #Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 #Javascript
JS实现的简单分页功能示例
Aug 23 #Javascript
JavaScript实用代码小技巧
Aug 23 #Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 #jQuery
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 #Javascript
You might like
咖啡历史、消费和行业趋势
2021/03/03 咖啡文化
swfupload 多文件上传实现代码
2008/08/27 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
2010/05/04 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
python采集博客中上传的QQ截图文件
2014/07/18 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
python 多进程队列数据处理详解
2019/12/23 Python
Python中zip函数如何使用
2020/06/04 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
查看keras的默认backend实现方式
2020/06/19 Python
Python如何定义有可选参数的元类
2020/07/31 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
经典c++面试题五
2014/12/17 面试题
应届毕业生个人自我评价
2013/09/20 职场文书
个人贷款承诺书
2014/03/28 职场文书
职工代表大会主持词
2014/04/01 职场文书
合伙经营协议书范本
2014/04/18 职场文书
小学标准化建设汇报材料
2014/08/16 职场文书
社区党员干部承诺书
2015/05/04 职场文书
刑事上诉状范文
2015/05/22 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
SpringBoot整合JWT的入门指南
2021/06/29 Java/Android