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 相关文章推荐
html下载本地
Jun 19 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
Jun 23 Javascript
AngularJS利用Controller完成URL跳转
Aug 09 Javascript
AngularJs concepts详解及示例代码
Sep 01 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
May 05 Javascript
bootstrap Table的一些小操作
Nov 01 Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
Nov 13 Javascript
JS 数组基本用法入门示例解析
Jan 16 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 disk_free_space 返回目录可用空间
2010/05/10 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
PHP加密技术的简单实现
2016/09/04 PHP
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
2015/09/04 Javascript
js选择器全面解析
2016/06/27 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
Vue中的Vux配置指南
2017/12/08 Javascript
angular动态表单制作
2018/02/23 Javascript
基于Vuex无法观察到值变化的解决方法
2018/03/01 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
koa2+vue实现登陆及登录状态判断
2019/08/15 Javascript
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
python装饰器decorator介绍
2014/11/21 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
财务人员的自我评价范文
2014/03/03 职场文书
创业培训计划书
2014/05/03 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书
Python基础之元类详解
2021/04/29 Python
Django 实现jwt认证的示例
2021/04/30 Python
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server