浏览器兼容性杂谈

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


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

参考文章

GitHub官方地址

使用方法

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

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

参考文章

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

GitHub官方地址

使用方法

1.在css中正常用 min/max-width media queries

@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会再改变一次页面的布局等,所以看起来有闪屏的现象)

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

实现思路

1.把head中所有的css路径取出来放入数组

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

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

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

总结

优点:压缩后仅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,但不能在页面里使用
posted @ 2017-04-09 00:25  小昱  阅读(166)  评论(0编辑  收藏  举报