基于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 相关文章推荐
javascript小数四舍五入多种方法实现
Dec 23 Javascript
JavaScript极简入门教程(三):数组
Oct 25 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
node.js缺少mysql模块运行报错的解决方法
Nov 13 Javascript
Bootstrap按钮组实例详解
Jul 03 Javascript
vue-router实现tab标签页(单页面)详解
Oct 17 Javascript
bootstrap 路径导航 分页 进度条的实例代码
Aug 06 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
Vue 中的受控与非受控组件的实现
Dec 17 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
微信小程序订阅消息(java后端实现)开发
Jun 01 Javascript
vue 子组件和父组件传值的示例
Sep 11 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
php生成EAN_13标准条形码实例
2013/11/13 PHP
php in_array() 检查数组中是否存在某个值详解
2016/11/23 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
JavaScript中property和attribute的区别详细介绍
2015/03/03 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
jquery实现鼠标拖拽滑动效果来选择数字的方法
2015/05/04 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
Less 安装及基本用法
2018/05/05 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Python中自定义函数的教程
2015/04/27 Python
python实现二分查找算法
2017/09/21 Python
django中的setting最佳配置小结
2017/11/21 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
上班迟到检讨书
2014/01/10 职场文书
放飞梦想演讲稿600字
2014/08/26 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
iPhone13 Pro外观确定,升级4800万镜头,4月20日发新品
2021/04/15 数码科技
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS