關於ie6,ie7相容性總結

2021-08-31 17:32:56 字數 1257 閱讀 1259

ie的float bug(ie6,ie7)使前端工程師們為之困擾,最常見的現象就是:當浮動元素的父級元素在拖動滾動條的時候出現邊框的缺失,對於此類問題的解決方案就是使浮動元素獲得布局.

在諸多的情況中,因為頁面需要寬度自由伸縮而不能申明寬度為固定值,但我們可以設定*height:1%;,*在這裡可謂是舉足輕重,因為*只能被ie7及以下版本解析,ie8並不識別此類寫法,所以可以使用這個寫法來區別ie8和其他版本號的ie瀏覽器.對網上流行的ie8 beta1的hack,也算是乙個補充.

一些常用的hack測試

* html p 支援 ie6 不支援ff ie7 ie8b

*+html p    支援 ie7 ie8b 不支援ff ie6

p 支援 ie7 ie6 不支援ff ie8b

ie8 中增加了 css3 中的子串匹配的屬性選擇器(substring matching attribute selectors),具體規則與正則中的匹配很相似:

e[att^=』val』] //子串以』val』 開始

e[att$=』val』] //子串以』val』 結束

e[att*=』val』] //子串中包含』val』

ie8 支援絕大多數基本的 css2.1 選擇器,不支援的包括但不限於:[:first-line] 、[:first-letter]。

對於 css2.1 中的 generated content 部分,即通過使用偽元素 :before 和 :after 新增文字內容,ie8 中支援 並未完全 。

而對於幾乎在其他瀏覽器中都支援的 opacity 和 rgba ,ie8 中依舊沒有支援。

對於原來用來區分 ie 的 hack 在 ie8 中基本失效(比如*property:value、*property:value等)。

原有 ie 的 list-item whitespace bug 在 ie8 中依舊存在。

原有 ie 的 z-index bug 在 ie8 中依舊存在。

ie8 中產生新的 bug:當 line-heigth 小於正常值時,超出的部分將被裁切掉。

ie8 中依然不支援 display:table 。

ie8 中依然不支援 border 的 transparent 值。

ie8 中 @import 只支援三層巢狀。

ie8中 border的 transparent 不被支援

ie8中產生新的bug:line-heigth bug

/*/p/*/ 只針對ie8的hack,可以是屬性也可以是類

本文**:

解決ie6 ie7 相容性問題

測試工具 ietester 問題描述 在ie6中,如果參照物沒有觸發haslayout 那麼絕對定位的容器的left和bottom就會有問題。解決辦法 在相對定位的父容器上加入 zoom 1 來觸發ie的haslayout即可解決。小技巧 通常我們在設定乙個容器為position relative的...

ie6, ie7相容性問題以及處理辦法彙總

1 ie6中絕對定位位置錯誤 問題描述 在ie6中,如果參照物沒有觸發haslayout 那麼絕對定位的容器的left和bottom就會有問題。解決辦法 在相對定位的父容器上加入 zoom 1 來觸發ie的haslayout即可解決。小技巧 通常我們在設定乙個容器為position relative...

IE6 IE7 IE8 IE9 FF相容性除錯

hack原理 不同瀏覽器對各中字元的識別不同 讀完文章你會發現,ff和ie8對以下字元的識別能力完全相同 在 css中常用特殊字元識別表 1 ie6 ie7都能識別 而標準瀏覽器ff ie8是不能識別 的 2 important 除ie6不能識別 important外,ff ie8 ie7都能識別 ...