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 相关文章推荐
js实现图片轮换效果代码
Apr 16 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
Jun 05 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
Nov 24 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
JavaScript html5 canvas绘制时钟效果(二)
Mar 27 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
Feb 06 Javascript
快速搭建vue2.0+boostrap项目的方法
Apr 09 Javascript
基于element-ui封装表单金额输入框的方法示例
Jan 06 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
Syphon 使用方法
2021/03/03 冲泡冲煮
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
php格式化金额函数分享
2015/02/02 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
Using the TextRange Object
2006/10/14 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
解决jQuery上传插件Uploadify出现Http Error 302错误的方法
2015/12/18 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
javascript算法之二叉搜索树的示例代码
2017/09/12 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
python文本数据相似度的度量
2018/03/12 Python
python如何读写json数据
2018/03/21 Python
Pycharm取消py脚本中SQL识别的方法
2018/11/29 Python
python加载自定义词典实例
2019/12/06 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
先进个人获奖感言
2014/01/24 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers