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 相关文章推荐
JS宝典学习笔记(下)
Jan 10 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
Dec 01 Javascript
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
JavaScript 变量、作用域及内存
Apr 08 Javascript
ECMAScript6中Set/WeakSet详解
Jun 12 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
JS返回只包含数字类型的数组实例分析
Dec 16 Javascript
jquery 键盘事件的使用方法详解
Sep 13 jQuery
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
基于twbsPagination.js分页插件使用心得(分享)
Oct 21 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
Oct 31 Javascript
微信小程序实现多选功能
Nov 04 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
php简单中奖算法(实例)
2017/08/15 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
Javascript调试工具(下载)
2007/01/09 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
javascript 3d 逐侦产品展示(核心精简)
2014/03/26 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
利用python 更新ssh 远程代码 操作远程服务器的实现代码
2018/02/08 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
python数据抓取3种方法总结
2021/02/07 Python
Prototype是怎么扩展DOM的
2014/10/01 面试题
网络研修随笔感言
2014/02/17 职场文书
工厂车间标语
2014/06/19 职场文书
爱心募捐感谢信
2015/01/22 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
2015双创工作总结
2015/07/24 职场文书
入党后的感想
2015/08/10 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js