详解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技巧
Dec 06 Javascript
js function使用心得
May 10 Javascript
JQuery datepicker 使用方法
May 20 Javascript
自定义函数实现IE7与IE8不兼容js中trim函数的问题
Feb 03 Javascript
js实现ifram取父窗口URL地址的方法
Feb 09 Javascript
Angular 中 select指令用法详解
Sep 29 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
Nov 21 Javascript
详解js中==与===的区别
Jan 08 Javascript
JS实现数组去重复值的方法示例
Feb 18 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
js判断节假日实例代码
Dec 27 Javascript
JS正则表达式封装与使用操作示例
May 15 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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
php读取html并截取字符串的简单代码
2009/11/30 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
2011/12/19 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php的socket编程详解
2016/11/20 PHP
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
JavaScript?Apple设备检测示例代码
2013/11/15 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
js插件实现图片滑动验证码
2020/09/29 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
python正则表达式之对号入座篇
2018/07/24 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
连锁经营管理专业大学生求职信
2013/10/30 职场文书
生日寄语大全
2014/04/08 职场文书
语文教育专业求职信
2014/06/28 职场文书
财会专业大学生求职信
2014/09/26 职场文书
就业协议书范本
2014/10/08 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
Python中Selenium对Cookie的操作方法
2021/07/09 Python