css移动端的兼容性问题 (适配问题)

html-css017

css移动端的兼容性问题 (适配问题),第1张

css移动端的兼容性问题 (适配问题)

一、浮动问题

简述:

我们在平时切页面时,经常会出现用完浮动(float),忘记删除.下面的布局出现莫名其妙的空白高度,导致布局调整失败

避免使用浮动

二、

链接: http://blog.csdn.net/chenmoquan/article/details/41547609

1、水平居中—使用 text-align

2、margin: auto 居中

3、table-cell 居中

4、Absolute 居中

5、使用 translate 居中

6、使用 Flexbox 居中

7、使用 calc 居中

三、常见的兼容性问题

四、css hack

五、css filter

六、更换渲染模式

七、浏览器内核

八、让H5页面适应所有的iphone手机以及安卓机型的六大技巧

九、REM 布局

什么是兼容性测试

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】

为什么要做兼容性测试

目前碎片化十分严重,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做APP的兼容性测试,还是非常有必要的。

兼容性影响因素

用户

硬件

软件

技术

网络

影响因素大致可以分为以上几类,我们对所测APP做兼容性测试时,可以从以上方面去考虑。

1、用户

我们需要依据自身APP用户群体的特征以及使用习惯,去做相应的兼容。比如用户群体如果大多是老人的话,可以考虑大字体的适配。比如针对旅游人士,可以考虑过程中网络的状况。如果拥有大量海外用户,可以考虑多币种、多语言、多度量、时区问题。

2、硬件

设备类型(手机、平板、穿戴式设备)

生产商(安卓手机存在每个厂商的定制化差异)

显示屏(屏幕大小、分辨率)

特殊硬件功能(NFC、蓝牙、相机、定位功能等)

3、软件

操作系统

浏览器内核

伴生应用

4、技术

RN、H5、native

开发语言(oc、swift)

5、网络

2G、3G、4G、wifi

兼容各种网络下APP的表现

iOS APP兼容性

屏幕分辨率

屏幕尺寸(含异形)

操作系统版本

Xcode版本

开发语言

第三方库或SDK

安装、升级

Android APP兼容性

屏幕分辨率

屏幕尺寸(含异形)

Android版本

系统版本

处理器架构(arm、x86)

开发语言(Java、koltin、混合)

第三方库或SDK

安装、升级

H5兼容性

CSS样式兼容(一些属性的浏览器标示前缀没有添加,导致默认浏览器不认识这个属性,所以样式错乱。有些布局不灵活,样式边界处理不好,导致宽窄屏显示异常)

JS兼容(主要是浏览器或者系统版本,新的js api不支持,但是没有做降级处理)

第三方库或SDK

框架(react、vue……)

缓存(sessionstorage、localstorage)

哪些场景需要做兼容性验证

UI显示

多次快速点击

拉起虚拟键盘挡住输入区

虚拟物理按键收起与显示

多个输入框来回切换

控件焦点热区文体

前后台、多个应用切换

指纹识别和faceid等

框架升级

网络

新老版本兼容

第三方依赖库或者SDK升级

前后端版本兼容

如何做兼容性测试

主要分为内部和外部。内部由测试人员自己覆盖主要机型。机型选取的原则是,根据自己APP用户的机型,选取至少top10进行人工兼容性测试。内部还可以进行的就是UI自动化测试。外部可以借助云测平台,比如testin、testbird等。

1.H5网页touch滑动的时候在苹果手机上出现不流畅的问题

-webkit-overflow-scrolling 用来控制元素在移动设备上是否使用滚动回弹效果.

解决办法:给所有网页添加如下样式

说明:

-webkit-overflow-scrolling: touch当手指从触摸屏上移开,会保持一段时间的滚动

-webkit-overflow-scrolling: auto当手指从触摸屏上移开,滚动会立即停止

2. css 苹果手机按钮默认样式如何去掉

input[type="button"], input[type="submit"], input[type="reset"] {-webkit-appearance: none}

textarea { -webkit-appearance: none}

3. 如果还有圆角的问题,

** 4.苹果手机不支持box-shadow属性**

如果先给input写边框,用 border:1px solid #ccc

5、去除Chrome等浏览器文本框默认发光边框

6.去掉高光样式:

当然这样以来,当文本框载入焦点时,所有浏览器下的文本框的边框都不会有颜色上及样式上的变化了,这样的话,当文本框载入焦点时,边框颜色就会变为橙色,给用户一个反馈。

7、去除IE10+浏览器文本框后面的小叉叉,只需下面一句就ok了

input::-ms-clear {display: none}

8.H5页面写出来,在chrome中出现如下错误,只需添加如下css即可解决

*{touch-action: pan-y}