深圳智学无忧教育科技(单题)

题型 难易度 出现频率 浏览 评论
问答题 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;


还能输入{{limitInput-commentDet.length}}个字符