深圳智学无忧教育科技(单题)
题型 | 难易度 | 出现频率 | 浏览 | 评论 |
---|---|---|---|---|
问答题 | 26 | 0 |
问答题
- 浏览器兼容性问题
答:
在我们的项目是采用优雅降级的方式来解决兼容性问题。
第一个版本我们采用html5技术来设计网站,然后在调试中去兼容低版本的浏览器兼容性。兼容主要css和js上的差异。js体现在api的差异,css体现在样式属性和值的差异。找出差异进行修正。
一、常见的兼容性问题
1.常见的兼容性问题:不同浏览器的默认margin和padding 值不同,一般都初始化样式.
2.图片默认有间距,可以使用浮动图片或设置图片行块级元素解决.
3.透明度一般浏览器都使用opacity,IE使用滤镜filter来设置.
二、针对IE不同版本的浏览器
css hack主要是针对IE浏览器的不同版本这是样式。大致分为三种形式的hack
第一种:属性级Hack:比如IE6能识别下划线”_”和星号” * “,IE7能识别星号” * “,但不能识别下划线”_”,而firefox两个都不能认识。
第二种:选择符级Hack:比如IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。
第三种:IE条件注释Hack,通常用于判断浏览器的版本。
例如针对所有IE:<!–[if IE]><!–您的代码–><![endif]–>
针对IE6及以下版本:<!–[if lt IE 7]><!–您的代码–><![endif]–>
三、PC端兼容性的处理:
1.Normalize.css
不同浏览器的默认样式存在差异,可以使用 Normalize.css 抹平这些差异。
2.html5shiv.js
解决 ie9 以下浏览器对 html5 新增标签不识别的问题。
3.respond.js
解决 ie9 以下浏览器不支持 CSS3 Media Query 的问题。
4.picturefill.js
解决 IE 9 10 11 等浏览器不支持 <picture> 标签的问题
四、项目中遇到兼容性的问题:
1、firefox中的a标签点击后,周围有一圈虚线框。去掉方式是:
a:focus{outline:none}
2、input:password 设置required之后,输入框周围有一圈红框,解决办法是把required去掉,该用js验证
3、ie8并不支持rgba来设置透明度,解决方案如下:
background: #000000;
filter: alpha(opacity=50) !important;
opacity: .5 !important;