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 相关文章推荐
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
使用Math.floor与Math.random取随机整数的方法详解
May 07 Javascript
javascript递归回溯法解八皇后问题
Apr 22 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
AngularJS 支付倒计时功能实现思路
Jun 05 Javascript
详解node+express+ejs+bootstrap构建项目
Sep 27 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
Dec 28 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 Javascript
JS实现动态星空背景效果
Nov 01 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP编写daemon process 实例详解
2016/11/13 PHP
php批量修改表结构实例
2017/05/24 PHP
CodeIgniter框架数据库基本操作示例
2018/05/24 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
KnockoutJS 3.X API 第四章之表单value绑定
2016/10/10 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
详解nodejs异步I/O和事件循环
2017/06/07 NodeJs
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
让Python代码更快运行的5种方法
2015/06/21 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
Python3内置模块random随机方法小结
2019/07/13 Python
查看keras的默认backend实现方式
2020/06/19 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
小学生班会演讲稿
2014/01/09 职场文书
郭明义电影观后感
2015/06/08 职场文书
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技