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学习笔记(三) String 字符串类型介绍
Jun 19 Javascript
bootstrap下拉菜单使用方法解析
Jan 13 Javascript
Bootstrap模态窗口源码解析
Feb 08 Javascript
js date 格式化
Feb 15 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
JavaScript输出所选择起始与结束日期的方法
Jul 12 Javascript
简单实现jQuery手风琴效果
Aug 18 jQuery
Vue.js 事件修饰符的使用教程
Nov 01 Javascript
Vuex的初探与实战小结
Nov 26 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 Javascript
原生JS实现多条件筛选
Aug 19 Javascript
用vue写一个日历
Nov 02 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
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
phpfpm的作用和用法
2019/10/10 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
For循环中分号隔开的3部分的执行顺序探讨
2014/05/27 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
实习单位鉴定评语
2014/04/26 职场文书
社区先进事迹材料
2014/05/19 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
个人四风问题整改措施
2014/10/24 职场文书
社团个人总结范文
2015/03/05 职场文书
幼儿园教师个人工作总结2015
2015/05/12 职场文书
社区党务工作总结2015
2015/05/19 职场文书
教师学习心得体会范文
2016/01/21 职场文书
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers