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 相关文章推荐
jquery动态加载图片数据练习代码
Aug 04 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
Jun 20 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
理解javascript对象继承
Apr 17 Javascript
基于jQuery倒计时插件实现团购秒杀效果
May 13 Javascript
半个小时学json(json传递示例)
Dec 25 Javascript
JavaScript实现分页效果
Mar 28 Javascript
借助node实战JSONP跨域实例
Mar 30 Javascript
解决AngualrJS页面刷新导致异常显示问题
Apr 20 Javascript
JS实现的全排列组合算法示例
Oct 09 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
vue.js根据代码运行环境选择baseurl的方法
Feb 28 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
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
php删除指定目录的方法
2015/04/03 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
常用DOM整理
2015/06/16 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
Python 多核并行计算的示例代码
2017/11/07 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
delegate与普通函数的区别
2014/01/22 面试题
矿泉水广告词
2014/03/20 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
材料员岗位职责范本
2015/04/11 职场文书
2015年教研工作总结
2015/05/23 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
高中班主任寄语
2019/06/21 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL
MySQL中order by的使用详情
2021/11/17 MySQL
使用RedisTemplat实现简单的分布式锁
2021/11/20 Redis
Spring Bean是如何初始化的详解
2022/03/22 Java/Android