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 last-child 列表最后一项的样式
Jan 22 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
Feb 05 Javascript
angularJS中router的使用指南
Feb 09 Javascript
JavaScript中return false的用法
Mar 12 Javascript
JS延时提示框实现方法详解
Nov 26 Javascript
理解javascript模块化
Mar 28 Javascript
AngularJS压缩JS技巧分析
Nov 08 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
详解Vue用axios发送post请求自动set cookie
May 10 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
Dec 27 Javascript
js中url对象化管理分析
Dec 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下使用curl模拟用户登陆的代码
2010/09/10 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
event.X和event.clientX的区别分析
2011/10/06 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
不到30行JS代码实现Excel表格的方法
2014/11/15 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
js实现常用排序算法
2016/08/09 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python如何制作缩略图
2019/04/30 Python
Python玩转加密的技巧【推荐】
2019/05/13 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
C语言编程练习
2012/04/02 面试题
毕业生求职的求职信
2013/12/05 职场文书
会计电算化专业毕业生推荐信
2013/12/24 职场文书
运动会通讯稿50字
2014/01/30 职场文书
体育教师求职信
2014/05/24 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
员工辞退通知书
2015/04/17 职场文书
解约证明模板
2015/06/19 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
如何更改Win11声音输出设备?Win11声音输出设备四种更改方法
2022/04/08 数码科技
详解CSS3浏览器兼容
2022/12/24 HTML / CSS