vue-cli配置flexible过程详解


Posted in Javascript onJuly 04, 2019

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

安装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配置flexible过程详解

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

vue-cli配置flexible过程详解

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问题

在实际运用中发现对于外部引入的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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
让FireFox支持innerText的实现代码
Dec 01 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
Aug 16 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
js判断登录与否并确定跳转页面的方法
Jan 30 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
javascript中的正则表达式使用详解
Aug 30 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
Vue插件写、用详解(附demo)
Mar 20 Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 Javascript
使用vue完成微信公众号网页小记(推荐)
Apr 28 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
vue动态配置模板 'component is'代码
Jul 04 #Javascript
react 移动端实现列表左滑删除的示例代码
Jul 04 #Javascript
jQuery删除/清空指定元素的所有子节点实例代码
Jul 04 #jQuery
小程序中canvas的drawImage方法参数使用详解
Jul 04 #Javascript
vue如何限制只能输入正负数及小数
Jul 04 #Javascript
Vue项目中ESlint规范示例代码
Jul 04 #Javascript
你或许不知道的一些npm实用技巧
Jul 04 #Javascript
You might like
PHP 简单日历实现代码
2009/10/28 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
使用python对excle和json互相转换的示例
2018/10/23 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
鱼油专家:Omegavia
2016/10/10 全球购物
如何用JQuery进行表单验证
2013/05/29 面试题
电子商务应届生自我鉴定
2014/01/13 职场文书
会议活动邀请函
2014/01/27 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
大学活动总结模板
2014/07/10 职场文书
放弃继承权公证书
2015/01/23 职场文书
明星邀请函
2015/02/02 职场文书
建国大业电影观后感
2015/06/01 职场文书
欢送领导祝酒词
2015/08/12 职场文书
安全教育日主题班会
2015/08/13 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Spring boot admin 服务监控利器详解
2022/08/05 Java/Android