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 相关文章推荐
IE和Firefox下javascript的兼容写法小结
Dec 10 Javascript
javascript 有趣而诡异的数组
Apr 06 Javascript
js获取html参数及向swf传递参数应用介绍
Feb 18 Javascript
jquery submit ie6下失效的原因分析及解决方法
Nov 15 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
js+css实现select的美化效果
Mar 24 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
jQuery事件绑定方法学习总结(推荐)
Nov 21 Javascript
JS Testing Properties 判断属性是否在对象里的方法
Oct 01 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
Aug 28 Javascript
JavaScript如何实现图片处理与合成
May 29 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树的代码,可以嵌套任意层
2006/10/09 PHP
一些PHP写的小东西
2006/12/06 PHP
PHP 字符串 小常识
2009/06/05 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
php引用传值实例详解学习
2013/11/06 PHP
javascript FormatNumber函数实现方法
2008/12/30 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
Javascript Object.extend
2010/05/18 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
从零开始学习Node.js系列教程四:多页面实现的数学运算示例
2017/04/13 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
Python简单实现网页内容抓取功能示例
2018/06/07 Python
用python 实现在不确定行数情况下多行输入方法
2019/01/28 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
python raise的基本使用
2020/09/10 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
Delphi软件工程师试题
2013/01/29 面试题
初中政治教学反思
2014/01/17 职场文书
企业军训感想
2014/02/07 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
学生打架检讨书
2014/10/20 职场文书
优秀教师申报材料
2014/12/16 职场文书
文明班级申报材料
2014/12/24 职场文书
体育活动总结
2015/02/04 职场文书
观后感开头
2015/06/19 职场文书
Nginx快速入门教程
2021/03/31 Servers
python中如何对多变量连续赋值
2021/06/03 Python
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
MySQL 数据类型详情
2021/11/11 MySQL