详解基于vue-cli配置移动端自适应


Posted in Javascript onJanuary 13, 2018

之前写过一篇关于移动端屏幕适配:移动端屏幕适配的解决,今天来聊一聊基于vue-cli配置的移动端屏幕适配问题。

配方还是一样:手淘的 lib-flexible + rem

配置 flexible

安装 lib-flexible

在命令行中运行如下安装:

npm i lib-flexible --save

引入 lib-flexible

在项目入口文件 main.js 里 引入 lib-flexible

// main.js
import 'lib-flexible'

添加 meta 标签

在项目根目录的 index.html 中添加如下 meta

<meta name="viewport" content="width=device-width, initial-scale=1.0">

px 转 rem

实际开发中,我们通过设计稿得到的值单位是 px,所以要将 px 转换成 rem 再写进样式中。

将 px 转换成 rem 我们将使用 px2rem 这个工具,它有 webpack 的 loader:px2rem-loader

安装 px2rem-loader

在命令行中运行如下安装:

npm i px2rem-loade --save-dev

配置 px2rem-loade

在 vue-cli 生成的 webpack 配置中,vue-loader 的 options 和其他样式文件 loader 最终是都是由 build/utils.js 里的一个方法生成的。

我们只需在 cssLoader 后再加上一个 px2remLoader 即可,px2rem-loader 的 remUnit 选项意思是 1rem=多少像素,结合 lib-flexible 的方案,我们将 px2remLoader 的 options.remUnit 设置成设计稿宽度的 1/10,这里我们假设设计稿宽为 750px。

// utils.js
var cssLoader = {
 loader: 'css-loader',
 options: {
  minimize: process.env.NODE_ENV === 'production',
  sourceMap: options.sourceMap
 }
}
var px2remLoader = {
 loader: 'px2rem-loader',
 options: {
  remUnit: 75
 }
}
// ...

并放进 loaders 数组中

// utils.js
function generateLoaders(loader, loaderOptions) {
 var loaders = [cssLoader, px2remLoader]
 // ...

修改配置后需要重启,然后我们在组件中写单位直接写 px,设计稿量多少就可以写多少了,舒服多了。

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

Javascript 相关文章推荐
js对象继承之原型链继承实例
Jan 10 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
Aug 24 Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 jQuery
ES6中的Promise代码详解
Oct 09 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
Jan 24 Javascript
webpack打包并将文件加载到指定的位置方法
Feb 22 Javascript
layui中table表头样式修改方法
Aug 15 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
vue router返回到指定的路由的场景分析
Nov 10 Javascript
javascript用rem来做响应式开发
Jan 13 #Javascript
深入理解ES6之数据解构的用法
Jan 13 #Javascript
详解ES6语法之可迭代协议和迭代器协议
Jan 13 #Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 #Javascript
vue使用element-ui的el-input监听不了回车事件的解决方法
Jan 12 #Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
Jan 12 #Javascript
js 索引下标之li集合绑定点击事件
Jan 12 #Javascript
You might like
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
Jquery-data的三种用法
2017/04/18 jQuery
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python 用下标截取字符串的实例
2018/12/25 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python numpy数组转置与轴变换
2019/11/15 Python
pytorch的batch normalize使用详解
2020/01/15 Python
利用setuptools打包python程序的方法步骤
2020/01/18 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
python实现图片素描效果
2020/09/26 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
HTML页面中添加Canvas标签示例
2015/01/01 HTML / CSS
香港优质食材和美酒专门店:FoodWise
2017/09/01 全球购物
理工科学生的自我评价
2013/12/15 职场文书
新年寄语2016
2015/08/17 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
小学三年级数学教学反思
2016/02/16 职场文书
MySQL 语句执行顺序举例解析
2022/06/05 MySQL
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python