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的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
Oct 10 Javascript
浅析JavaScript中两种类型的全局对象/函数
Dec 05 Javascript
超级简单的jquery操作表格方法
Dec 15 Javascript
js获得当前系统日期时间的方法
May 06 Javascript
JavaScript多并发问题如何处理
Oct 28 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
Bootstrap源码解读表单(2)
Dec 22 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
vue-cli webpack 引入jquery的方法
Jan 10 jQuery
详解react内联样式使用webpack将px转rem
Sep 13 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
从零开始学习搭建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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php 购物车的例子
2009/05/04 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
php中session与cookie的比较
2015/01/27 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
YII框架http缓存操作示例
2019/04/29 PHP
20个实用的JavaScript技巧分享
2014/11/28 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
BootStrap点击下拉菜单项后显示一个新的输入框实现代码
2016/05/16 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
JS实现的相册图片左右滚动完整实例
2016/11/23 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
vue 实现element-ui中的加载中状态
2020/11/11 Javascript
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
深入浅析Python中的yield关键字
2018/01/24 Python
解决Python pandas plot输出图形中显示中文乱码问题
2018/12/12 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
套娃式文件夹如何通过Python批量处理
2020/08/23 Python
CSS3弹性盒模型开发笔记(三)
2016/04/26 HTML / CSS
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
校长寄语大全
2014/04/09 职场文书
篮球赛口号
2014/06/18 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
闪闪的红星观后感
2015/06/08 职场文书
航班延误投诉信
2015/07/02 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL