vue中rem的配置的方法示例


Posted in Javascript onAugust 30, 2018

在用vue或react等工具搭建一个移动端项目时,怎样做到自适应呢? 当然选择rem布局比较方便快捷.

开发移动端,我们常常要用到rem+flex,那么vue中如何配置呢,我的做法是这样:

1、在js中统一计算配置

代码如下:

export default function() {
  // var devicePixelRatio = 1;
  // var scale = 1 / devicePixelRatio;
  // document.querySelector('meta[name="viewport"]').setAttribute('content','initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
  // 7.5根据设计稿的横向分辨率/100得来
  // alert(document.documentElement.clientWidth)
  var deviceWidth = document.documentElement.clientWidth;
  // var deviceWidth = window.screen.availWidth
  // alert(navigator.userAgent)
  // alert(deviceWidth)
  // console.log(navigator.userAgent)
  if(deviceWidth > 750) {
    // deviceWidth = 750;
    deviceWidth = 7.5 * 50;
  }

  document.documentElement.style.fontSize = deviceWidth / 7.5 + 'px';

  // 禁止双击放大
  document.documentElement.addEventListener('touchstart', function (event) {
    if (event.touches.length > 1) {
      event.preventDefault();
    }
  }, false);
  var lastTouchEnd = 0;
  document.documentElement.addEventListener('touchend', function (event) {
    var now = Date.now();
    if (now - lastTouchEnd <= 300) {
      event.preventDefault();
    }
    lastTouchEnd = now;
  }, false);
}

然后在main.js中引入使用。

vue中rem的配置的方法示例

结构

vue中rem的配置的方法示例

main.js

然后在index.css中设置默认大小:

 vue中rem的配置的方法示例

基础css

index.scss一般也在main.js里面引入:

vue中rem的配置的方法示例

main.js

2、借助px2rem 插件

安装

npm install px2rem-loader lib-flexible --save

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

import 'lib-flexible/flexible.js'

在build下的 utils.js中,找到generateLoaders 方法,在这里添加 。

const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 37.5
}
}

function generateLoaders (loader, loaderOptions) {
const loaders = [cssLoader, px2remLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}

重启项目,会发现自己设置的px被转为rem 了

vue中rem的配置的方法示例

效果

以上实现转换适用于:

(1)组件中编写的<style></style>下的css

(2)从index.js或者main.js中import ‘../../static/css/reset.css'引入css

(3)在组件的<script type=”text/ecmascript-6″> import ‘../../static/css/reset.css'</script>中引入css

另外的情况不适用:

(1)组件<style></style>中@import “../../static/css/reset.css (可考虑上面(2)、(3)的形式引入)

(2)外部样式:<link rel=”stylesheet” href=”static/css/reset.css”>

(3)元素内部样式:style=”height: 417px; width: 550px;”

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

Javascript 相关文章推荐
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
jQuery中的编程范式详解
Dec 15 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
Jan 27 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
Mar 22 Javascript
Bootstrap导航条的使用和理解3
Dec 14 Javascript
js实现城市级联菜单的2种方法
Jun 23 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
Vue项目总结之webpack常规打包优化方案
Jun 06 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 Javascript
vue项目实现多语言切换的思路
Sep 17 Javascript
Vue2实时监听表单变化的示例讲解
Aug 30 #Javascript
vue-swiper的使用教程
Aug 30 #Javascript
分享vue里swiper的一些坑
Aug 30 #Javascript
详解Vue CLI3 多页应用实践和源码设计
Aug 30 #Javascript
小程序图片长按识别功能的实现方法
Aug 30 #Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
Aug 30 #Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
Aug 30 #Javascript
You might like
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
实例教学如何写vue插件
2017/11/30 Javascript
vue和webpack打包项目相对路径修改的方法
2018/06/15 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
前端开发基础javaScript的六大作用
2020/08/06 Javascript
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python opencv之SIFT算法示例
2018/02/24 Python
python批量修改文件编码格式的方法
2018/05/31 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
python3 实现口罩抽签的功能
2020/03/11 Python
使用Python构造hive insert语句说明
2020/06/06 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
公司承诺书怎么写
2014/05/24 职场文书
医院党员公开承诺书
2014/08/30 职场文书
公司员工离职证明书
2014/10/04 职场文书
中学推普周活动总结
2015/05/07 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
如何用threejs实现实时多边形折射
2021/05/07 Javascript