最近做項目的時候,引用了 Google Font 的在線字體,估計是因為瀏覽器對字體的渲染方式不同或者是字體格式不一樣,結果導致 IE8 中導航是錯位的,而 IE9 和 IE10 中是正常的。
那么就需要單獨為 IE8 進行一些調整,于是就需要 IE8 的 CSS hack。一看到這里,足夠容易了吧?網上流傳已久的 IE8 CSS hack 就是在屬性后面加上 /9 或者 /0,代碼如下:
加上之后,發現 IE8 確實是沒有問題了,但是 IE9 和 IE10 卻出現了問題,上面的 hack 同樣對 IE9 和 IE10 起作用。
好吧,這個 CSS hack 不是 IE8 特有的。那怎么做才能只針對 IE8 做 hack 呢?
這里的思路需要稍稍轉換一下:可以先應用 IE8 的 hack ,與非 IE 瀏覽器分開,然后再應用一些 CSS3 之類的 IE8 不支持的選擇器來重新覆蓋一遍,讓支持新選擇器的 IE9、IE10 正常顯示。符合條件的常用選擇器有 :root,于是就可以寫出下面代碼:
這樣就做到了只對 IE8 瀏覽器起作用的 CSS hack,這種方法后來搜索了一下,早就有人提到了,寫本文主要是介紹一下這個解決瀏覽器兼容性問題的思路吧。
再次感嘆,微軟神奇的IE,在開發中不得不讓人抓狂。為IE6、IE7等等,都是比較好hack的,唯獨IE8比較坑一點。
新聞熱點
疑難解答