2.兼容性:对于CSS(样bai式表)并不是所有浏览器的所有版本都支持的很好,比如IE5以前的浏览器对于CSS的支持就不是很好。而现在使用IE5以前版本浏览器的用户不在少数,这样就使得在页面制作的过程中需要针对不同浏览器版本进行测试,以保证兼容性,无形中也增加很多工作量(至少我接触的开发人员制作div页面比table页面的标准时间要长一些)。
3.对css缩写的支持问题:
不论是ie 还是ff对css的缩写都有一小点问题比如border: 0xp solid #fff两个浏览器支持都没有问题
但对于四个边的magin不同情况下,就不能用这种缩写了,无论是ie还是ff又会出现边界解释错误,而导致页面变形正确缩写:border-width:0px 1px 2px 3px
border-style:solid
border-color:#fff
第二点是 ie对于css的magin padding 等默认值为0px,但ff却不一样,为了保持外观的统一性,即使padding为0你也要写上,以免ff在浏览中的错位。
IE与Firefox的CSS兼容大全 1.DOCTYPE 影响 CSS 处理
2.FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行
3.FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中
4.FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width
5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式,值得注意的是,一定要将xxxx !important 这句放置在另一句之上
6.div 的垂直居中问题: vertical-align:middle将行距增加到和整个DIV一样高 line-height:200px然后插入文字,就垂直居中了。缺点是要控制内容不要换行
7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以
8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格。
9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!importantmargin:28px}
注意这两个margin的顺序一定不能写反,据阿捷的说法!important这个属性IE不能识别,但别的浏览器可以识别。所以在IE下其实解释成这样:div{maring:30pxmargin:28px}
什么是兼容性测试兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】
为什么要做兼容性测试
目前碎片化十分严重,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做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等。