html5shiv.js和respond.js引入不起作用解決


      當項目需求需要兼容ie7,8這些奇葩瀏覽器時,考慮到h5的便捷性及響應式,我們往往引入html5shiv.js和respond.js來讓ie7,8兼容h5及一些響應式變化,引入時就需要用到條件注釋,原來寫條件注釋要么copy其他項目上的,要么隨便寫寫,從沒當回事,也沒注意格式上有什么要求,下面來看看因為條件注釋引起的大麻煩。

//css
<style>
    header {
        width:100px;
        height:100px;
        color:red;
        background:#ccc;
    }
</style>
//html
<header>
        hello world!
</header>

看上面的代碼,我們可以想象出來如果引入正確ie8下,應該是灰色背景下小紅字,先來看下正確的效果

下面來看下各種錯誤引入html5shiv.js的條件注釋語句及帶來的后果(ie8下測試)

<!-- [if lt ie 9]>
<script src="lib/html5shiv/html5shiv.js"></script>
<![endif]-->

看條件注釋語句似乎沒什么不妥,看效果

怎么沒效果???F12看控制台

header標簽未識別,坑爹啊,看起來沒錯啊,換html5shiv.js版本,換cdn統統沒用,再仔細檢查發現在中括號前多了個空格,把空格去掉,效果變正常。還有在中括號之后加空格會引起異常,中括號里面ie和9之間一定要加空格不然也會異常。看似漫不經心的一個小空格也會引起大錯誤,用條件注釋時一定要嚴格地按照格式來寫如下:

<!--[if lt ie 9]>
<![endif]-->

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM