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 相关文章推荐
jquery数组之存放checkbox全选值示例代码
Dec 20 Javascript
jQuery如何实现点击页面获得当前点击元素的id或其他信息
Jan 09 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
JS实现的跨浏览器解析XML文件实例
Jun 21 Javascript
深入探究node之Transform
Jul 20 Javascript
React Native 截屏组件的示例代码
Dec 06 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
微信小程序添加插屏广告并设置显示频率(一天一次)
Dec 06 Javascript
JS制作简易计算器的实例代码
Jul 04 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
Aug 12 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实现链结人气统计
2006/10/09 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
vue实现拖拽效果
2019/12/23 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
python绘制圆柱体的方法
2018/07/02 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
Python 窗体(tkinter)按钮 位置实例
2019/06/13 Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
2020/02/29 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
汽车技术服务与营销专业在籍生自荐信
2013/09/28 职场文书
行政总监岗位职责
2013/12/05 职场文书
法学函授自我鉴定
2014/02/06 职场文书
学校志愿者活动总结
2014/06/27 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
2014年女职工工作总结
2014/11/27 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记