ie低版本兼容html5+媒體查詢的工具

  • 讓ie9以下瀏覽器支持html5新增的標籤,以及讓新增標籤的樣式展現完全。

    1. 引入html5shiv.js
    2. arcticle,section,footer.header等的新增標籤加上屬性:display:block;

    注:htmlshiv只針對普通的html5新增標籤,對於video和audio標籤要用html5media.js

  • 讓ie6-8支持媒體查詢

  1. 引入respond.js
    注:response中的media query的min-width和max-width語法(僅僅支持min-width和max-width)

【插件原理】
需要理解respond.js的實現思路:
第一步,將head中所有外部引入的CSS文件路徑取出來存儲到一個數組當中;
第二步,遍歷數組,並一個個發送AJAX請求;
第三步,AJAX回調後,分析response中的media query的min-width和max-width語法(注意,僅僅支持min-width和max-width),分析出viewport變化區間對應相應的css塊;
第四步,頁面初始化時和window.resize時,根據當前viewport使用相應的css塊
【核心理論】
由此,就可以根據基本的實現思路,得到一些書寫代碼時要注意的地方:
1、需要啓動本地服務器(localhost),不能使用普通本地的url地址(file://開頭);
2、需要外部引入CSS文件,將CSS樣式書寫在style中是無效的;
3、由於respond插件是查找CSS文件,再進行處理,所以respond文件一定要放置在CSS文件的後面
4、另外,雖然把respond放置在head裏還是在body後面都能夠實現,但是建議放置在head中(具體原因越早的引入respond.js文件,也就越可能避免IE下出現的閃屏)
5、最好不要爲CSS設置utf-8的編碼,使用默認(utf-8的字符編碼可能對respond.js文件的運行有影響)
6、不支持嵌套的媒體查詢

綜合:
注意:需在頭部使用,確保在文檔解析前(加載並運行)


<!--[if lt IE 9]>
<script src="respond.js"></script>//放在css文件的後面
<script src="html5shiv.min.js"></script>
<![endif]-->
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章