移动端部分兼容问题总结

1、H5页面窗口自动调整到设备宽度,并禁止用户缩放页面
  <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />

  (部分安卓手机的UC浏览器写完以后还是可以放大缩小)

2、略将页面中的数字识别为电话号码
  <meta name="format-detection" content="telephone=no" />(iOS上会明显 有时候会把数字当成电话号码)

3、忽略Android平台中对邮箱地址的识别
  <meta name="format-detection" content="email=no" />

4、viewport模板
  <meta charset="utf-8">

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

  <meta content="yes" name="apple-mobile-web-app-capable">

  <meta content="black" name="apple-mobile-web-app-status-bar-style">

  <meta content="telephone=no" name="format-detection">

  <meta content="email=no" name="format-detection">

5、webkit表单元素的默认外观怎么重置
  .css{-webkit-appearance:none;} (ios上的下拉框会有圆角,所以要写border-radius:0)

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

  webkit表单输入框placeholder的文字能换行么?ios可以,android不行~,在textarea标签下都可以换行~

  html,body{

  overflow: hidden;/*手机上写overflow-x:hidden;会有兼容性问题,如果子级如果是绝对定位有运动到屏幕外的话ios7系统会出现留白*/

  -webkit-overflow-scrolling:touch;/*流畅滚动,ios7下会有滑一下滑不动的情况,所以需要写上*/

  position:realtive;/*直接子级如果是绝对定位有运动到屏幕外的话,会出现留白*/

  }

7、手机上的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;/*解决兼容性问题*/

  }

8、输入框的兼容性解决

  input[type="text"],

  input[type="date"],

  input[type="tel"],

  input[type="email"],

  input[type="password"]{

  -webkit-appearance: none;

  display: block;

  width: 100%;

  height: 0.8rem;

  line-height:normal;/*手机上的line-height不能写成和height的值一样,会出现再次输入光标靠上的现象*/

  background: none;

  font-size: 0.32rem;

  padding-left: 0.28rem;

  border-radius: 0;

  -webkit-border-radius: 0;

  border: 1px solid #d5d5d5;

  -moz-box-sizing: border-box;

  -webkit-box-sizing: border-box;

  box-sizing: border-box;

  outline: none;

  -webkit-transform: translateZ(0);

  -moz-transform: translateZ(0);

  -ms-transform: translateZ(0);

  -o-transform: translateZ(0);

  transform: translateZ(0);/*解决加入js后input框输入瞬间变白的现象*/

  }

9、禁用 radio 和 checkbox 默认样式

  input[type="radio"]::-ms-check,input[type="checkbox"]::-ms-check{

  display: none;/*这样就可以用class自定义样式*/

  }

10、webkit表单输入框placeholder的颜色值

  input::-webkit-input-placeholder{color:#999;}

  input:focus::-webkit-input-placeholder{color:#999;}

11、手机上的多行省略

  .overflow-hidden{

  display: box !important;

  display: -webkit-box !important;

  overflow: hidden;

  text-overflow: ellipsis;

  -webkit-box-orient: vertical;

  -webkit-line-clamp: 4;/*第几行出现省略号*/

  /*text-align:justify;不能和溢出隐藏的代码一起写,会有bug*/

  }

12、文本标签line-height:1或者是line-height等于height文字会被切掉

  手机上浮动元素能写宽尽量写宽不然很容易出现兼容性问题,尽量不要写高,因为内容多少不固定

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

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

13、<button></button>元素一定要写上type属性不然会默认提交表单,出现想不到的bug

14、某些安卓手机的自带浏览器不识别onkeydown onkeypress onkeyup事件,这些事件会导致不能输入汉字

15、input框若是不想输入文字 只能读不能写可以加readonly属性

16、手机上用背景图写运动

  如果需要背景图定位来实现运动效果可以用rem进行计算后加上basckground-size:图的个数*100% 0;

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

17、弹层的关闭事件

  弹层的关闭事件容易触发弹层关闭后下一层的事件所以要给弹层关闭事件加上event.preventDefault()

  弹层弹出后不允许屏幕滚动给弹层加mousemove事件event.preventDefault()

18、面包屑导航

  面包屑导航如果按照bootstrap给li加:after伪元素的话在其他浏览器和在UC浏览器中表现的不一样,UC的的会比其他的浏览器宽,所占位置更多

  如果一个手机看到的和其他手机不一样 会比其他的手机大或者小,查看他的浏览器字体设置是否正常,应该是他把手机浏览的字号调小或者调大了(坑人的所谓的bug)

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

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

转载 http://www.cnblogs.com/songhello/archive/2017/03/14/6547886.html

时间: 2024-10-24 01:05:35

移动端部分兼容问题总结的相关文章

移动端版本兼容js

<!--移动端版本兼容 --> <script type="text/javascript"> var phoneWidth = parseInt(window.screen.width); var phoneScale = phoneWidth/640; var ua = navigator.userAgent; if (/Android (\d+\.\d+)/.test(ua)){ var version = parseFloat(RegExp.$1); /

vue移动端滑动兼容

vue移动端transition兼容 .face-recognition .wrapper(:style="{height: viewHeight+'px'}") .face-recognition{ height: 100%; display: flex; flex-direction: column; position: absolute; top: 0; bottom: 0; left: 0; right: 0; background-color: #ffffff; .wrapp

转 :2016HTML5移动端最新兼容问题解决方案;

1.安卓浏览器看背景图片,有些设备会模糊.用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的.让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如一个di

APP多版本共存,服务端如何兼容?

做过APP产品的技术人员都知道,APP应用属于一种C/S架构的,所以在做多版本兼容,升级等处理则比较麻烦,不像web应用那么容易.下面将带大家分析几种常见的情况和应对方式: 小改动或者新加功能的 这种情况,数据库结构和API程序一般是可以兼容多版本的,所以不用强制升级,可以坐到多版本共存. 尽量采用数据库层面新增字段和API的方式,应用程序层面就可以兼容了.当然,API层面也可以部署多个版本来同时提供,但这个不是必须的 但最重要的是数据库层面的表结构那些能够兼容到.  或者:  总结: 数据库层

【转】HTML5移动端最新兼容问题解决方案

1.安卓浏览器看背景图片,有些设备会模糊. 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的.让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如一个

HTML5移动端最新兼容问题解决方案

1.安卓浏览器看背景图片,有些设备会模糊.用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的.想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如一个d

移动端web兼容各种分辨率写法

移动端web开发最好用rem单位,再设置以下js,以iphone6 750*1334为基准 <script> var size = document.documentElement.clientWidth / 750 * 100; //PC端訪問時,默認viewport為100 if (!/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { size = 100; } document.documentElem

实现自己写的小程序富文本编辑以及展示,不跟PC端的兼容,但是可以在pc端显示以及修改,一旦修改,小程序不再做解析

富文本结构: 1 <div class="detail_box"> 2 <ul> 3 <li v-for="(item4,index4) in detailAry" :key="index4"> 4 <!-- 文字 --> 5 <div class="detail_list"> 6 <div class="list_t"> 7 <

移动端BUG兼容

总结一下目前的移动端开发遇到的问题. 1.IOS与安卓input默认样式去除.移动端总有一个默认的圆角或别的. input[type=button],input[type=text],input[type=password]{ -webkit-appearance:none; outline:none; border-radius:none; } 2.IOS后退无刷新 使用onpageshow主动触发js事件实现所需的刷新 onpageshow 事件在用户浏览网页时触发. onpageshow

移动端300ms兼容问题(移动端经典问题)

移动端300ms延迟原因 2007 年初.苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设备所设计的.于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题. 双击缩放(double tap to zoom),这也是会有上述 300 毫秒延迟的主要原因.双击缩放,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例. 假定这么一个场景.用户在 iOS Safari 里边点击了一个链接.由于用户可以进行双