vue项目中使用lib-flexible解决移动端适配的问题解决


Posted in Javascript onAugust 23, 2018

第一部分:项目中引入lib-flexible

一、项目中安装lib-flexible

$ npm install lib-flexible --save

二、在项目的入口js文件中引入lib-flexible

import 'lib-flexible'

通过要以上两步,就完成了在vue项目使用lib-flexible来解决移动端适配了。

lib-flexible会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。假如设计稿的宽度是750px,此时1rem应该等于75px。假如量的某个元素的宽度是150px,那么在css里面定义这个元素的宽度就是 width: 2rem

注意:

    1.检查一下html文件的head中,如果有 meta name="viewport"标签,需要将他注释掉,因为如果有这个标签的话,lib-flexible就会默认使用这个标签。而我们要使用lib-flexible自己生成的 meta name="viewport"来达到高清适配的效果。

    2.因为html的font-size是根据屏幕宽度除以10计算出来的,所以我们需要设置页面的最大宽度是10rem。

    3.如果每次从设计稿量出来的尺寸都手动去计算一下rem,就会导致我们效率比较慢,还有可能会计算错误,所以我们可以使用px2rem-loader自动将css中的px转成rem

第二部分:使用px2rem-loader自动将css中的px转换成rem

一、安装px2rem-loader

$ npm install px2rem-loader --save-dev

二、配置px2rem-loader

1.打开build/utils.js文件,找到exports.cssLoaders方法,在里面添加如下代码

const px2remLoader = {
  loader: 'px2rem-loader',
  options: {
   remUint: 75
  }
 }

2.修改generateLoaders方法中的loaders

// 注释掉这一行
// const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
// 修改为
const loaders = [cssLoader, px2remLoader]
 
if (options.usePostCSS) {
 loaders.push(postcssLoader)
}

然后重新npm run dev,打开控制台可以看到代码中的px已经被转成了rem

注意:

1.此方法只能将.vue文件style标签中的px转成rem,不能将script标签和元素style里面定义的px转成rem

2.如果在.vue文件style中的某一行代码不希望被转成rem,只要在后面写上注释 /* no*/就可以了

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

Javascript 相关文章推荐
JQuery 学习笔记 选择器之六
Jul 23 Javascript
JavaScript eval() 函数介绍及应用示例
Jul 29 Javascript
基于jquery和svg实现超炫酷的动画特效
Dec 09 Javascript
浅谈jQuery构造函数分析
May 11 Javascript
javascript随机显示背景图片的方法
Jun 18 Javascript
javascript实现拖放效果
Dec 16 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
微信小程序日期选择器实例代码
Jul 18 Javascript
jQuery实现聊天对话框
Feb 08 jQuery
JS实现多选框的操作
Jun 24 Javascript
vue使用过滤器格式化日期
Jan 20 Vue.js
从零开始学习搭建React脚手架项目
Aug 23 #Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 #Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 #Javascript
JS实现的简单分页功能示例
Aug 23 #Javascript
JavaScript实用代码小技巧
Aug 23 #Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 #jQuery
使用JS实现导航切换时高亮显示的示例讲解
Aug 22 #Javascript
You might like
PHP个人网站架设连环讲(一)
2006/10/09 PHP
php 静态变量的初始化
2009/11/15 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Cpy和Python的效率对比
2015/03/20 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python的faker库用法
2019/11/28 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
python raise的基本使用
2020/09/10 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
explicit和implicit的含义
2012/11/15 面试题
大专毕业自我鉴定
2014/02/04 职场文书
干部考核评语
2014/04/29 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
英语读书笔记
2015/07/02 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
python+pyhyper实现识别图片中的车牌号思路详解
2022/12/24 Python