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下给元素添加事件的方法与代码
Aug 13 Javascript
Jquery实现无刷新DropDownList联动实现代码
Mar 08 Javascript
js图片自动切换效果处理代码
May 07 Javascript
JS删除字符串中重复字符方法
Mar 09 Javascript
js判断当前浏览器类型,判断IE浏览器方法
Jun 02 Javascript
DOM基础教程之使用DOM控制表单
Jan 20 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 Javascript
layui导出所有数据的例子
Sep 10 Javascript
小程序分享链接onShareAppMessage的具体用法
May 22 Javascript
vue实现简单学生信息管理
May 30 Javascript
element日历calendar组件上月、今天、下月、日历块点击事件及模板源码
Jul 27 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与SQL注入攻击[三]
2007/04/17 PHP
php Ajax乱码
2008/04/09 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
javascript使用定时函数实现跳转到某个页面
2013/12/25 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
2016/10/25 Javascript
深入理解Angular.JS中的Scope继承
2017/06/04 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
ionic3 懒加载
2017/08/16 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
小程序实现密码输入框
2020/11/16 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python如何创建TCP服务端和客户端
2018/08/26 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
python实现大文件分割与合并
2019/07/22 Python
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
应届生个人求职信模板
2013/11/26 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS