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代码 var ie = !-[1,] 最短的IE判定代码
May 28 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
使用jquery清空、复位整个输入域
Apr 02 Javascript
基于jquery实现表格无刷新分页
Jan 07 Javascript
BootStrap3学习笔记(一)之网格系统
May 20 Javascript
js闭包用法实例详解
Dec 13 Javascript
Vue2.0使用过程常见的一些问题总结学习
Apr 10 Javascript
关于vue.js发布后路径引用的问题解决
Aug 15 Javascript
原生JS实现ajax与ajax的跨域请求实例
Dec 01 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 Javascript
javascript实现倒计时效果
Feb 17 Javascript
基于openlayers实现角度测量功能
Sep 28 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
星际争霸兵种名称对照表
2020/03/04 星际争霸
PHP聊天室技术
2006/10/09 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
PHP asXML()函数讲解
2019/02/03 PHP
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
Bootstrap中的fileinput 多图片上传及编辑功能
2016/09/05 Javascript
js自制图片放大镜功能
2017/01/24 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
js实现简单页面全屏
2019/09/17 Javascript
Python logging模块学习笔记
2014/05/24 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
中秋节主持词
2014/04/02 职场文书
律师授权委托书范本
2014/10/07 职场文书
单位接收函格式
2015/01/30 职场文书
教师学期个人总结
2015/02/11 职场文书
社区党务工作总结2015
2015/05/19 职场文书
刑事附带民事代理词
2015/05/25 职场文书