浅谈Html5移动端ios/Android兼容性总结


Posted in HTML / CSS onJune 01, 2018

以前做pc端,也会遇到兼容性的问题,不过说实话,脑海里全是ie的问题,并没有什么可特别注意的,可能是我不善总结,现在做移动端(本来觉得移动端很easy,所以没放在眼里),so,我错了,我为自己的轻视高傲买单!

最近就遇见了一些兼容性bug,从网上找了资料。

先说一下viewport

先上模板

<meta charset="utf-8">
<!--主要I是强制让文档的宽度与设备宽度保持1:1,最大宽度1.0,禁止屏幕缩放。-->
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">
<!--这个也是iphone私有标签,允许全屏浏览。-->
<meta content="yes" name="apple-mobile-web-app-capable">
<!--iphone的私有标签,iphone顶端状态条的样式。-->
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<!--禁止数字自动识别为电话号码,这个比较有用,因为一串数字在iphone上会显示成蓝色,样式加成别的颜色也是不生效的。-->
<meta content="telephone=no" name="format-detection">
<!--禁止email识别-->
<meta content="email=no" name="format-detection">

写背景图时最好加上top left 或者0 0 不然写运动效果时容易出现跳

禁止复制、选中文本

.el {
  -webkit-user-select: none;
  -moz-user-select: none;
  -khtml-user-select: none;
   user-select: none;
}

苹果手机固定定位有bug 检查html和body是不是设置了overflow-x:hidden;

给不同屏幕大小的手机设置特殊样式

@media only screen  and (min-device-width : 320px)  and (max-device-width : 375px){}

IOS中input键盘事件keyup、keydown、keypress支持不是很好, 用input监听键盘keyup事件,在安卓手机浏览器中是可以的,但是在ios手机浏览器中用输入法输入之后,并未立刻相应keyup事件,只有在通过删除之后才可以响应

方法:可以用html5的oninput事件去代替keyup

<input type="text" id="testInput">
<script type="text/javascript">
  document.getElementById('input').addEventListener('input', function(e){
    var value = e.target.value;
  });
</script>

ios 设置input 按钮样式会被默认样式覆盖

解决方式如下:

input,textarea {
  border: 0;
  -webkit-appearance: none;
}
  • 消除 IE10 里面的那个叉号:input:-ms-clear{display:none;}
  • 手机上的flex布局时会有兼容性问题,只用新版本的会出现安卓手机不识别的现象

flex布局对于低版本的安卓,不支持flex-wrap:wrap属性,但是ios系统支持换行属性,这个时候如何解决呢?当然是不使用换行,用其他方式代替。

.box{
    display: -webkit-box; 
    /* 老版本语法: Safari, iOS, Android browser, older WebKit browsers. */
    display: -moz-box; /* 老版本语法: Firefox (buggy) */
    display: -ms-flexbox; /* 混合版本语法: IE 10 */
    display: -webkit-flex; /* 新版本语法: Chrome 21+ */
    display: flex; /* 新版本语法: Opera 12.1, Firefox 22+ */
}

input 的placeholder属性会使文本位置偏上

line-height: (和input框的高度一样高)---pc端解决方法

line-height:normal ---移动端解决方法

input type=number之后,pc端出现上下箭头

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0;
}

实现android和ios系统手机打开相机并可选择相册功能

<input class="js_upFile cover1" type="file" name="cover" accept="image/*" capture="camera" multiple/>

$(function () {
    //获取浏览器的userAgent,并转化为小写
    var ua = navigator.userAgent.toLowerCase();
    //判断是否是苹果手机,是则是true
    var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
    if (isIos) {
        $("input:file").removeAttr("capture");
    };
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
浅析几个CSS3常用功能的写法
Jun 05 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
Oct 10 HTML / CSS
CSS3哪些新特性值得称赞
Mar 02 HTML / CSS
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
Aug 15 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
Sep 06 HTML / CSS
利用CSS3伪元素实现逐渐发光的方格边框
May 07 HTML / CSS
HTML5打开本地app应用的方法
Mar 31 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
Oct 26 HTML / CSS
HTML5中新标签和常用标签详解
Mar 07 HTML / CSS
前后端结合实现amazeUI分页效果
Aug 21 HTML / CSS
使用HBuilder制作一个简单的HTML5网页
Jul 07 HTML / CSS
浅谈css清除浮动(clearfix和clear)的用法
May 21 HTML / CSS
HTML5中的websocket实现直播功能
May 21 #HTML / CSS
深入浅析HTML5中的article和section的区别
May 15 #HTML / CSS
HTML5触摸事件实现移动端简易进度条的实现方法
May 04 #HTML / CSS
HTML5声音录制/播放功能的实现代码
May 03 #HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 #HTML / CSS
浅谈Html5多线程开发之WebWorkers
May 02 #HTML / CSS
html5的input的required使用中遇到的问题及解决方法
Apr 24 #HTML / CSS
You might like
非常好的php目录导航文件代码
2006/10/09 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
Vue Socket.io源码解读
2018/02/07 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
[05:01]3.19DOTA2发布会 我们都是刀塔人
2014/03/25 DOTA
Python标准库与第三方库详解
2014/07/22 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
美国最大的在线生存商店:Survival Frog
2020/12/13 全球购物
化学专业毕业生自荐信
2013/11/15 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
中学教师教育感言
2014/02/21 职场文书
留学生求职信
2014/06/03 职场文书
乒乓球兴趣小组活动总结
2014/07/08 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
八月一日观后感
2015/06/10 职场文书
培训感想范文
2015/08/07 职场文书
Pytorch 如何实现常用正则化
2021/05/27 Python
Python中else的三种使用场景
2021/06/16 Python
分析并发编程之LongAdder原理
2021/06/29 Java/Android