基于vue-cli配置lib-flexible + rem实现移动端自适应


Posted in Javascript onDecember 26, 2017

安装flexible

npm install lib-flexible --save

引入flexible

在项目入口文件main.js中添加如下代码,引入flexible

import 'lib-flexible'

px 转 rem

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

安装px2rem-loader

npm install px2rem-loader --save-dev

配置px2rem-loader

在vue-cli生成的文件中,找到以下文件 build/utils.js,如下图添加配置

基于vue-cli配置lib-flexible + rem实现移动端自适应

关于importLoaders:如若有疑问,请参考webpack深入与实战4-4

2017.12.8更新说明:是否需要配置importLoaders,可参考最底部的说明。

基于vue-cli配置lib-flexible + rem实现移动端自适应

px2rem 用法

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

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

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

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

示例代码

编译前(自己写的代码)

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

编译后(打包后的代码)

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

重启项目,就可以愉快的用设计稿上的px了。

注意:坑

不能在index.html的头部加 name 为 viewport 的 meta 标签,flexible会自动为我们添加!

更新:对外部引入css,px2rem能不能转换rem问题

2017.12.8更新:在实际运用中发现对于外部引入的css文件,有时候px2rem能正常转换,有时候又不能转换,到底是什么原因呢?试验了三种不同的css引入情况,发现第一种能正常转换,二三不能正常转换,至于原因,由于才疏学浅,还是不懂,求大神解答三种引入方式的区别。

如果明白了这些方法,就没必要再配置cssLoader的importLoaders了,因为下面的方法更容易控制外部引入的css是否需要转rem,而更改importLoaders就控制不了了,它会强制转换。

<style src='../assets/style.css'>
 /* px2rem能正常转换 */
</style>
<style>
 /* px2rem不能正常转换 */
 @import '../assets/style.css';
</style>
<style>
 /* px2rem不能正常转换 */
 @import url('../assets/style.css');
</style>

总结

以上所述是小编给大家介绍的基于vue-cli配置lib-flexible + rem实现移动端自适应,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
js 学习笔记(三)
Dec 29 Javascript
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
浅析javascript中的Event事件
Dec 09 Javascript
angular bootstrap timepicker TypeError提示怎么办
Jun 13 Javascript
详解使用vue实现tab 切换操作
Jul 03 Javascript
js分页之前端代码实现和请求处理
Aug 04 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
Nov 30 Javascript
原生Vue 实现右键菜单组件功能
Dec 16 Javascript
js实现点击生成随机div
Jan 16 Javascript
js实现html滑动图片拼图验证
Jun 24 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 #Javascript
细说webpack源码之compile流程-rules参数处理技巧(2)
Dec 26 #Javascript
AngularJS实现的根据数量与单价计算总价功能示例
Dec 26 #Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
Dec 26 #Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
Dec 26 #Javascript
细说webpack源码之compile流程-入口函数run
Dec 26 #Javascript
Vue 进入/离开动画效果
Dec 26 #Javascript
You might like
多重?l件?合查?(二)
2006/10/09 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
详解js静态资源文件请求的处理
2017/08/01 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[03:27]《辉夜杯》线下训练营 导师CU和海涛指点迷津
2015/10/23 DOTA
Python实现读取文件最后n行的方法
2017/02/23 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
python中对_init_的理解及实例解析
2019/10/11 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
linux面试题参考答案(7)
2012/10/29 面试题
安全生产演讲稿
2014/05/09 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
2015年幼儿园班务工作总结
2015/05/12 职场文书
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
win10清理dns缓存
2022/04/19 数码科技