移动端开发兼容性总结

每次h5开发,总会遇到一些兼容性bug,现在总结下,供大家参考。

1)定位问题:ios
2)写背景图时最好加上top left 或者0 0 不然写运动效果时容易出现跳
3)防止手机中网页放大和缩小:<meta name="viewport" content="user-scalable=0" />
4)设置Web应用是否以全屏模式运行:<meta name="apple-mobile-web-app-capable" content="yes">,content的默认值是no

5)自动识别电话号码:<meta name="format-detection" ontent="telephone=no">,telephone=no可以禁用这功能,默认值是no

6)禁止复制、选中文本:

Element {
  -webkit-user-select: none;
  -moz-user-select: none;
  -khtml-user-select: none;
   user-select: none;
}
7) 设置缓存:
<meta http-equiv="Cache-Control" content="no-cache" />
手机页面通常在第一次加载后会进行缓存,然后每次刷新会使用缓存而不是去重新向服务器发送请求。如果不希望使用缓存可以设置no-cache8) 苹果手机固定定位有bug 检查html和body是不是设置了overflow-x:hidden;

9) IOS手机中如果出现一个元素的层级非常高可还是被别的元素遮盖的,那么就将该元素与别的元素同级

10) 给不同屏幕大小的手机设置特殊样式: 
@media only screen  and (min-device-width : 320px)  and (max-device-width : 375px){              }

11) 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>


12)、ios 设置input 按钮样式会被默认样式覆盖
解决方式如下:
input,
textarea {
  border: 0;
  -webkit-appearance: none;
}
13)、消除 IE10 里面的那个叉号:input:-ms-clear{display:none;}

14)、关于 iOS 系统中,中文输入法输入英文时,字母之间可能会出现一个六分之一空格可以通过正则去掉
1
this.value = this.value.replace(/\u2006/g, '');
15)、手机上的flex布局时会有兼容性问题,只用新版本的会出现安卓手机不识别的现象
.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+ */
}
.box>li{
-webkit-box-flex: 1.0;
box-flex: 1.0;
-webkit-flex: 1.0;
flex: 1;
width: 0;/*解决兼容性问题*/
}



16)、
html,body{
overflow: hidden;/*手机上写overflow-x:hidden;会有兼容性问题,如果子级如果是绝对定位有运动到屏幕外的话ios7系统会出现留白*/
-webkit-overflow-scrolling:touch;/*流畅滚动,ios7下会有滑一下滑不动的情况,所以需要写上*/
position:realtive;/*直接子级如果是绝对定位有运动到屏幕外的话,会出现留白*/

}



17)
viewport模板
<meta charset="utf-8">
<meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport">//主要I是强制让文档的宽度与设备宽度保持1:1,最大宽度1.0,禁止屏幕缩放。
<meta content="yes" name="apple-mobile-web-app-capable">//这个也是iphone私有标签,允许全屏浏览。
<meta content="black" name="apple-mobile-web-app-status-bar-style">//iphone的私有标签,iphone顶端状态条的样式。
<meta content="telephone=no" name="format-detection">//禁止数字自动识别为电话号码,这个比较有用,因为一串数字在iphone上会显示成蓝色,样式加成别的颜色也是不生效的。
<meta content="email=no" name="format-detection">
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动端开发前端需要注意以下几点: 1. 理想视口:为了在移动端有最理想的浏览和阅读宽度,需要设置理想视口。理想视口的宽度应该与设备的宽度一致,可以通过添加meta视口标签来实现。\[1\] 2. 布局方式:在移动端开发中,可以选择不同的布局方式,如流式布局、flex弹性布局、less+rem+媒体查询布局、混合布局等。根据项目需求和开发经验选择合适的布局方式。\[2\] 3. 响应式布局:响应式布局是一种能够适应不同屏幕尺寸的布局方式。通过使用媒体查询来适配不同的屏幕尺寸,使页面在不同设备上都能有良好的显示效果。\[2\] 4. 文件结构:在搭建移动端开发的文件结构时,需要考虑到不同设备的兼容性和性能优化。合理组织文件结构,减少不必要的请求和文件大小,提高页面加载速度。\[2\] 总结起来,移动端开发前端需要注意理想视口的设置、选择合适的布局方式、使用响应式布局和优化文件结构等方面。这些注意事项可以帮助开发者在移动端上实现良好的用户体验。 #### 引用[.reference_title] - *1* *3* [前端开发移动端基础](https://blog.csdn.net/u013773608/article/details/110735612)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Web前端开发 移动端开发(快速入门)](https://blog.csdn.net/weixin_46127956/article/details/127800253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值