[前端]IE8跑版各種疑難雜症

IE8筆記,慢慢補充上來

跑版可能:html寫法

*不支援:last-child、:nth-child(n)

IE8不支援:last-child和:nth-child(n),但支援:first-child,管他支援什麼,往後要寫到IE8的我寧願多命幾個名,這種寫法我就避免了
解法:不用,改加寫class一個一個做控制

*不支援:before、:after

解法:不用,全補改用span代替

*不支援:checked 

解法:不用,忽略它

*跑版檢查:

float時要給寬度,不然會跑版
解法:針對IE8加寫CSS

*跑版檢查:

position:fixed的時候width不聽父層的導致跑版
解法:針對IE8寫css

*圖片跑不出來:

IE8加上width屬性、或style寫max-width等等,圖片就會出不來
解法:不加,一律class命名用css控制,不得已的狀況看能不能寫js把該屬性拿掉

*media query看不懂

max-width{}和mix-width{}內的東西不會被讀到~
解法1:加入resbond.js
但這一支需透過伺服器瀏覽才會有效,不然還是會跑版唷

解法2:另外寫IE8版本的CSS只給他讀,後方參考
通常resbond.js用了還是會有一些跑版問題要調整,所以就都用吧!

*html5的標籤

常常遇到就是,網頁一用IE8開,整個頁面CSS都掉了(脫皮),白底背景加上一堆文字擠在一起,慘烈的。
其實只是因為IE8看不懂<header><footer>這種html5的標籤拉,送他一支resbond.js他就會讀了~
解決:html5shiv.js

跑版可能:js失靈

*檢查1:不能用CDN

JS是否是外連CDN?改成內連吧!
通常會要寫到IE8的都是政府網站,政府網站可能用自己的內網,一律不能連到外部網站的,也就是不能用CDN。

*檢查2:根本是IE8權限沒開

IE8瀏覽起器權限沒有開,要去安全性選項調整權限放寬鬆一點。

配合IE8寫法

*只讓IE8讀取,如:

<!--[if lte IE 8]>

   <script src="js/html5shiv.js"></script>

<![endif]-->

*只讓IE8不讀取,如:

<xml>

  <script src="js/layout.js"></script>

</xml>

配合IE8css寫法

*可以用hack寫法,跟全部css寫在一起,如:

background:#fff \9;

*或是另外寫一支給IE8專用的CSS,如(推這個,比較好維護管理):

<!--[if lte IE 8]>

    <link rel="stylesheet" href="css/ie8.css" />

<![endif]-->

沒有留言:

張貼留言

Instagram