一,限定某些浏览器版本才能执行的语句(摘自互联网链接已贴出)
http://www.weste.net/2013/8-9/93104.html
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->
二、HTML5 Shiv – 让该死的IE系列支持HTML5。
http://www.daqianduan.com/2831.html
<!--[if IE]>
<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
< ![endif]-->
将上代码复制到head部分,记住一定要是head部分(因为IE必须在元素解析前知道这个元素,所以这个js文件不能在其他位置调用,否则失效)
css里面加上这段:
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
主要是让这些html5标签成块状,像div那样。
三、Respond.js让IE6-8支持CSS3 Media Query
http://caibaojian.com/respondjs.html
Respond.js让不支持css3 Media Query的浏览器包括IE6-IE8等其他浏览器支持查询
一、@media screen and (min-width: 480px){
...styles for 480px and up go here }
引入respond.min.js,但要在css的后面(越早引入越好,在ie下面看到页面闪屏的概率就越低,因为最初css会先渲染出来,如果respond.js加载得很后面,这时重新根据media query解析出来的css会再改变一次页面的布局等,所以看起来有闪屏的现象)
实现思路
1.把head中所有<link rel=“sheetstyle” href=“xx”/>的css路径取出来放入数组
2.然后遍历数组一个个发ajax请求
3.ajax回调后仅分析response中的media query的min-width和max-width语法,分析出viewport变化区间对应相应的css块
4.页面初始化时和window.resize时,根据当前viewport使用相应的css块。
总结
1、优点:压缩后仅1k,不跨域时性能ok,只需引入respond.js通用易用
2、缺点:仅支持media query的min-width和max-width(用于响应式够用);支持跨域,虽然配置有点麻烦,实现跨域代价高而且有闪屏体验欠佳。