對IE8、IE7、IE6、Firefox2.0.0.12做了簡單的一些CSS HACK測試。下文中的 IE8 暫時僅代表IE8 beta1)。
CSS定義:p {color:#f00;}
xhtml結構:<p>文字</p>
主要是測試“文字”這個顏色在不同瀏覽器下使用hack的一些結果報告:
* html p {color:#f00;} 支援 IE6 不支援FF IE7 IE8b
*+html p {color:#f00;} 支援 IE7 IE8b 不支援FF IE6
p {*color:#f00;} 支援 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{ color:#1e90ff}/*/ 只針對IE8的hack,可以是屬性也可以是類