详解vue.js移动端配置flexible.js及注意事项


Posted in Javascript onApril 10, 2019

前言

最近在用vue做移动端项目,网上找了一些移动端适配的方案,个人觉得手淘团队flexible.js还是比较容易上手,在这里做下总结。

主体

flexible.js适配方案采用rem布局,根据屏幕分辨率大小不同,调整根元素html的font-size,从而达到每个元素宽高自动变化,适配不同屏幕

1.安装lib-flexible.js

npm install lib-flexible --save

1.在项目入口文件main.js中引入lib-flexible

import 'lib-flexible/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

使用 webpack 的 px2rem-loader,自动将px转换为rem

1.安装px2rem-loader

npm install px2rem-loader --save-dev

1.配置px2rem-loader

首先找到 build/utils.js文件,在utils.js中添加如下配置

详解vue.js移动端配置flexible.js及注意事项

找到generateLoaders方法,在函数里如下配置

详解vue.js移动端配置flexible.js及注意事项

1.px2rem 用法

安装px2rem后,再使用px上有些不同,大家可以参考px2rem官方介绍,下面简单介绍一下。

•直接写px,编译后会直接转化成rem —- 除开下面两种情况,其他长度用这个

•在px后面添加/*no*/,不会转化px,会原样输出。 —- 一般border需用这个

•在px后面添加/*px*/,会根据dpr的不同,生成三套代码。—- 一般字体需用这个

下面是本人写的实例代码,可以参考

原始代码:

.box{
  width: 150px;
  font-size: 28px; /*px*/
  border: 1px solid #ddd; /*no*/
}

编译后生成代码:

.box{
  width: 2rem;
  border: 1px solid #ddd;
}
[data-dpr="1"] .selector {
  font-size: 14px;
}
[data-dpr="2"] .selector {
  font-size: 28px;
}
[data-dpr="3"] .selector {
  font-size: 42px;
}

这样基本配置就完成了,重启项目就可以使用lib-flexible+rem编写移动端页面了

后缀

交个朋友,可以一起进阶前端学习

找到我: GitHub

总结

以上所述是小编给大家介绍的vue.js移动端配置flexible.js及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript 注册事件代码
Jan 27 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
Apr 15 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
JavaScript检测浏览器cookie是否已经启动的方法
Feb 27 Javascript
推荐10 个很棒的 jQuery 特效代码
Oct 04 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
ES6新特性之函数的扩展实例详解
Apr 01 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
angular4应用中输入的最小值和最大值的方法
May 17 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
小程序分享模块超级详解(推荐)
Apr 10 #Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 #Javascript
Vue中computed、methods与watch的区别总结
Apr 10 #Javascript
JavaScript 性能提升之路(推荐)
Apr 10 #Javascript
详解vue-cli3 中跨域解决方案
Apr 10 #Javascript
js中数组常用方法总结(推荐)
Apr 09 #Javascript
JS隐藏号码中间4位代码实例
Apr 09 #Javascript
You might like
PHP SEO优化之URL优化方法
2011/04/21 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
ionic2 tabs 图标自定义实例
2017/03/08 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
jquery实现放大镜简洁代码(推荐)
2017/06/08 jQuery
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
原生js实现五子棋游戏
2020/05/28 Javascript
JS可断点续传文件上传实现代码解析
2020/07/30 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Python help()函数用法详解
2014/03/11 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Django中针对基于类的视图添加csrf_exempt实例代码
2018/02/11 Python
python实现飞机大战微信小游戏
2020/03/21 Python
django最快程序开发流程详解
2019/07/19 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
Python实现自动装机功能案例分析
2020/10/22 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
法国二手手袋、手表和奢侈珠宝购物网站:Collector Square
2018/07/05 全球购物
幼儿园家长评语
2014/02/10 职场文书
不遵守课堂纪律的检讨书
2014/09/24 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
幼儿教师个人总结
2015/02/05 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python