浏览器兼容性杂谈

原文地址: 小昱博客 - 浏览器兼容性杂谈 转载请注明出处,谢谢!javascript


html5shiv.js让IE6-8浏览器支持HTML5新标签

参考文章

GitHub官方地址css

使用方法

<!--[if IE]>
  <script src="html5shiv.js"></script>
<![endif]-->

Respond.js让IE6-8浏览器支持媒体查询

参考文章

Respond.js让IE6-8支持CSS3 Media Queryhtml

GitHub官方地址html5

使用方法

1.在css中正经常使用 min/max-width media queriesjava

@media screen and (min-width: 480px){
  ...styles for 480px and up go here
}

2.引入respond.min.js,但要在css的后面(越早引入越好,在ie下面看到页面闪屏的几率就越低,由于最初css会先渲染出来,若是respond.js加载得很后面,这时从新根据media query解析出来的css会再改变一次页面的布局等,因此看起来有闪屏的现象)css3

<!--[if IE]>
  <script src="respond.js"></script>
<![endif]-->

实现思路

1.把head中全部 的css路径取出来放入数组git

2.而后遍历数组一个个发ajax请求github

3.ajax回调后仅分析response中的media query的min-width和max-width语法,分析出viewport变化区间对应相应的css块web

4.页面初始化时和window.resize时,根据当前viewport使用相应的css块。ajax

总结

优势:压缩后仅1k,不跨域时性能ok,只需引入respond.js通用易用

缺点:仅支持media query的min-width和max-width(用于响应式够用);支持跨域,虽然配置有点麻烦,实现跨域代价高并且有闪屏体验欠佳。

IE6~IE8中使用css3的选择器

参考文档

使用Selectivizr让IE6~8支持CSS3

官方网站

使用方法

Selectivizr的使用很是的简单,可是并不能直接使用,在使用前须要先加载下列框架中的任何一个:JQuery、dojo、prototype、Yahoo YUI、DOMAssistant、mootools、NVMatcher。须要注意的是Selectivizr对各个框架的支持程度不一,具体可查看官方网站。 而后在页面里引用Selectivizr便可。

<script type="text/javascript" src="[JS library]"></script>
<!--[if lt IE 9]>
    <script type="text/javascript" src="selectivizr-min.js"></script>
< ![endif]-->

注意事项

  1. Selectivizr会自动检测最好的JS框架,若是你当前页面中正在使用如JQuery框架,可是它对Selectivizr的支持并不太好,你只须要在页面中再调用另外一个(如Mootools)便可。
  2. CSS样式必须使用 标签引入,还可使用@import,但不能在页面里使用
相关文章
相关标签/搜索