vue移动端html5页面根据屏幕适配的四种解决方法


Posted in Javascript onOctober 19, 2018

最近做了两个关于h5页面对接公众号的项目,不得不提打开微信浏览器内置地图导航的功能确实有点恶心。下次想起来了的话,进行总结分享一下如何处理。在vue移动端h5页面当中,其中适配是经常会遇到的问题,这块主要有死个方法可以适用。

方法一:引入淘宝开源的可伸缩布局方案

引入淘宝开源的可伸缩布局方案:https://github.com/amfe/lib-flexible(此处可点击)

淘宝的其实也和viewport的有点像,但是它主要是根据设备设备像素比设置scale的值,保持视口device-width始终等于设备物理像素,屏幕大小动态计算根字体大小,具体是将屏幕划分为10等分。这块也可以直接用js实现,后面会提到

具体引入和使用方法,移步github查看,非常详细。

方法二:viewport 的使用

github里边,有提到  viewport 的使用。我感觉这篇文章关于viewport 的介绍特别详细,包括比例、是否缩放等的属性介绍特别的详细,虽然文章的内容一大片的字看起来很多,但是请耐心看完,都是干货能很好的让你认识viewport。如果比较着急,请继续往下看总结图吧

关于 viewport 的,这块直接引用上面文章的内容,我感觉也是最干脆最直接的总结了吧

vue移动端html5页面根据屏幕适配的四种解决方法

方法三:使用js+viewport动态设置手动适配rem

我的编辑器是vscode,添加了插件cssrem自动转换

index.html

<!DOCTYPE html>
<html>
 <head>
 <meta charset="utf-8">
 <!-- <meta name="viewport" content="width=device-width,initial-scale=1.0"> -->
 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
 <!-- 启用360浏览器的极速模式(webkit) -->
 <meta name="renderer" content="webkit">
 <!-- 避免IE使用兼容模式 -->
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
 <meta name="HandheldFriendly" content="true">
 <!-- 微软的老式浏览器 -->
 <meta name="MobileOptimized" content="320">
 <!-- uc强制竖屏 -->
 <meta name="screen-orientation" content="portrait">
 <!-- QQ强制竖屏 -->
 <meta name="x5-orientation" content="portrait">
 <!-- UC强制全屏 -->
 <meta name="full-screen" content="yes">
 <!-- QQ强制全屏 -->
 <meta name="x5-fullscreen" content="true">
 <!-- UC应用模式 -->
 <meta name="browsermode" content="application">
 <!-- QQ应用模式 -->
 <meta name="x5-page-mode" content="app">
 <!-- windows phone 点击无高光 -->
 <meta name="msapplication-tap-highlight" content="no">
 <meta content="telephone=no" name="format-detection" />
 <meta name="huaban" content="nopin" />
 <link rel="icon" type="image/x-icon" href="/favicon.ico" rel="external nofollow" >
 <title>新茶饮</title>
 <script src="/config.js"></script>
 <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
 </head>
 <body>
 <div id="app"></div>
 <!-- 
 在iphone 5 中1rem=16px; 
 html font-size =16px=1rem;
 -->
 <script>
 //得到手机屏幕的宽度
 let htmlWidth = document.documentElement.clientWidth || document.body.clientWidth;
 console.log('htmlWidth',htmlWidth)
 //得到html的Dom元素
 let htmlDom = document.getElementsByTagName('html')[0];
 // if(htmlWidth>640){//超过640大小的,字体根部都是16px
 // htmlWidth=640;
 // console.log('htmlWidth-true',htmlWidth)
 // }
 //设置根元素字体大小
 htmlDom.style.fontSize = htmlWidth / 40 + 'px';
 </script>
 </body>
</html>

方法四:根据css的媒体查询动态设置根部html字体大小

html {font-size: 625%; /*100 ÷ 16 × 100% = 625%*/}
@media screen and (min-width:360px) and (max-width:374px) and (orientation:portrait) {
 html { font-size: 703%; }
}
@media screen and (min-width:375px) and (max-width:383px) and (orientation:portrait) {
 html { font-size: 732.4%; }
}
@media screen and (min-width:384px) and (max-width:399px) and (orientation:portrait) {
 html { font-size: 750%; }
}
@media screen and (min-width:400px) and (max-width:413px) and (orientation:portrait) {
 html { font-size: 781.25%; }
}
@media screen and (min-width:414px) and (max-width:431px) and (orientation:portrait){
 html { font-size: 808.6%; }
}
@media screen and (min-width:432px) and (max-width:479px) and (orientation:portrait){
 html { font-size: 843.75%; }
}

总结

以上所述是小编给大家介绍的vue移动端html5页面根据屏幕适配的四种解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript进阶教程(第四课第一部分)
Apr 05 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
Aug 24 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
Feb 08 Javascript
Bootstrap按钮组简单实现代码
Mar 06 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
快速解决vue-cli不能初始化webpack模板的问题
Mar 20 Javascript
js中比较两个对象是否相同的方法示例
Sep 02 Javascript
JavaScript函数IIFE使用详解
Oct 21 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
Oct 18 #Javascript
vue中v-for循环给标签属性赋值的方法
Oct 18 #Javascript
webstorm+vue初始化项目的方法
Oct 18 #Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 #Javascript
vue: WebStorm设置快速编译运行的方法
Oct 18 #Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 #Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 #Javascript
You might like
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
div+css布局的图片连续滚动js实现代码
2010/05/04 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
Jquery 实现table样式的设定
2015/01/28 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
2015/04/13 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
JavaScript简单拖拽效果(1)
2017/05/17 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
python读取xlsx的方法
2018/12/25 Python
Python整数对象实现原理详解
2019/07/01 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
python路径的写法及目录的获取方式
2019/12/26 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
HTML5本地存储之Web Storage详解
2016/07/04 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
2014年银行员工年终自我评价
2014/09/19 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
培训师岗位职责
2015/02/14 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang