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的跟随屏幕滚动代码
Jul 24 Javascript
让angularjs支持浏览器自动填表
Nov 10 Javascript
JavaScript获取页面中表单(form)数量的方法
Apr 03 Javascript
javascript判断复选框是否选中的方法
Oct 16 Javascript
Bootstrap和Angularjs配合自制弹框的实例代码
Aug 24 Javascript
js实现小窗口拖拽效果
Dec 03 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
vue之浏览器存储方法封装实例
Mar 15 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
详解vue在项目中使用百度地图
Mar 26 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
Oct 16 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
CI(CodeIgniter)框架视图中加载视图的方法
2017/03/24 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
飞鱼(shqlsl) javascript作品集
2006/12/16 Javascript
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
2017/12/20 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
微信小程序结合Storage实现搜索历史效果
2019/05/18 Javascript
详解vue高级特性
2020/06/09 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
对Python3 解析html的几种操作方式小结
2019/02/16 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Order by的几种用法
2013/06/16 面试题
自我评价如何写好?
2014/01/05 职场文书
无故旷工检讨书
2014/01/26 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
上班迟到检讨书范文300字
2014/11/02 职场文书
英文慰问信范文
2015/03/24 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
邹越演讲观后感
2015/06/15 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python
Mysql 设置boolean类型的操作
2021/06/04 MySQL