前端移动常见兼容问题

无论是作为一个刚刚步入前端的菜鸟还是已经摸爬滚打好多年的老司机,兼容问题一直笼罩着前端工作者们,今天,网上看了不少总结,我在这里综合一下。我是做web前端的,经常做移动端,pc端往往是和IE打交道。想想IE真是让人头疼。以下是一些移动端及pc端踩过的坑,仅供参考。哈哈

1:苹果浏览器伪标签<a>不支持css动画

2:移动端浏览器给根元素添加overfow:hidden,大部分浏览器没效果

3:Ios中h5不支持自动播放

解决办法:给页面根元素绑定一次touchstart事件播放流媒体文件,模拟自动播放

4:Ios给移动端按钮添加js事件,按钮必须是原生html按钮或<a>标签自定义构成


5:input框聚焦,ios出现outline或者阴影,安卓显示正常

解决办法:input:focus{outline:none}      input:{-webkit-appearance: none;}


6:ios系统会将数字当成电话号码,导致变色

解决办法:<meta name="format-detection" content="telephone=no">     

                   <meta http-equiv="x-rim-auto-match" content="none">

                    放到<head>中


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

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

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


8:点击300ms   使用fastclick  

9: 移动端1px  在ios中使用0.5px

10: js中获取浏览器高度,获取scrollTOP等属性需要兼容

11: h5页面 当输入框在最底部,点击软键盘后输入框会被遮挡。定时器或者修改为固定定位

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

解决办法:input,textarea{border:0;-webkit-appearance: none;}

13:消除 IE10 里面的那个叉号:input:-ms-clear{display:none;}

14:手机上的flex布局时会有兼容性问题,只用新版本的会出现安卓手机不识别的现象

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

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

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

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

解决办法:input::-webkit-outer-spin-button,

                   input::-webkit-inner-spin-button{

                        -webkit-appearance: none!important;

                        margin:0;

            }

17:禁止复制、选中文本

解决办法:.el{

                    -webkit-user-select: none;

                    -moz-user-select: none;

                    -khtml-user-select: none;

                    user-select: none;

            }

18:H5页面窗口自动调整到设备宽度,并禁止用户缩放页面

<meta name="viewport" content="width=device-width,initial-scale=1.0" user-scalable=no"></meta>

19:在input框获得焦点时文字被清空用value 在input框输入文字时被清空用placeholder

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

-----------------------------------------------------------------------------------------------------------------------------------

对于浏览器的兼容问题,下面说一下各位大佬,只针对IE8+版本和其他现代浏览器

1:据统计,chrome已经取代ie占据半壁江山,ie8、ie9占有接近25%的份额,紧跟着是firefox

2:浏览器内核

Chromium内核,以Chrome为代表

Gecko内核,以Firefox为代表

Webkit内核,以Sarfari为代表

Trident内核,以IE为代表

Presto内核,以老版本的Opera为代表

上面的兼容,都是在开发中遇到的,据个人经验,这些方法都是可行的,如有解决不了的情况,请根据自己的情况对号入座哇!

兼容性可能不太全,以后如果有遇到其他的情况,我会在此篇的文章后补全的;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 前端开发者丨http请求 https:www.rokub.com 前言见解有限, 如有描述不当之处, 请帮忙指出,...
    麋鹿_720a阅读 13,776评论 11 31
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,222评论 4 61
  • 最近特别喜欢看树,以仰视的角度,以蓝天或晚霞为背景,看它们逆光的骨骼,或一路挺拔向上,或顿挫曲折,铁钩银划,有一种...
    翊M阅读 5,300评论 1 4
  • 题记:1991年,我参加了一个在北戴河开办的宣传工作研讨班。恰好就住在联峰山山脚下,学习之余,没事儿就登登山,不亦...
    关观阅读 4,292评论 0 3