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 相关文章推荐
浅析document.createDocumentFragment()与js效率
Jul 08 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
jquery制做精致的倒计时特效
Jun 13 Javascript
AngularJS中如何使用echart插件示例详解
Oct 26 Javascript
bootstrap手风琴折叠示例代码分享
May 22 Javascript
基于JavaScript实现五子棋游戏
Aug 26 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
Vue $attrs & inheritAttr实现button禁用效果案例
Dec 07 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
从零开始学习搭建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
php二维数组用键名分组相加实例函数
2013/11/06 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
Laravel5框架添加自定义辅助函数的方法
2018/08/01 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
js中日期的加减法
2015/05/06 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
python函数的万能参数传参详解
2019/07/26 Python
wxpython绘制音频效果
2019/11/18 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python ssh 执行shell命令的示例
2020/09/29 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
演讲稿的写法
2014/05/19 职场文书
节能环保口号
2014/06/12 职场文书
总经理岗位职责说明书
2014/07/30 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python