css3中的样式兼容性问题怎么弄?

html-css059

css3中的样式兼容性问题怎么弄?,第1张

1.目前来说对css支持最好的公认的是火狐浏览器,错位的原因在css代码书写不规范。

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等。