首頁  >  文章  >  web前端  >  一個針對IE7的CSS Hack_經驗交流

一個針對IE7的CSS Hack_經驗交流

WBOY
WBOY原創
2016-05-16 12:09:261147瀏覽

IE7 修復了很多 bug,也增加了對一些選擇符的支持,所以現在諸如 *html {} 和 html>body {} 等針對 IE 隱藏或顯示的 hack 都會在 IE7 中失效。雖然 CSS Hack 不建議使用,條件註解才是萬無一失的過濾器,但是條件註解只能出現在 HTML 中,CSS Hack 還是有用武之地的。 Nanobot 發現了一些針對 IE7 的 CSS Hack,具體就是:

>body
html*
*+html

這三種寫法,其中前兩種都是不合法的 CSS 寫法,在標準相容瀏覽器中被忽略,但是 IE7 卻不這麼認為。對於 >body ,它會將缺少的選擇符用全域選擇符 * 代替,也就是將其處理成了 *>body,而且不光對於 > 選擇符,+,~ 選擇符中這個現像也存在。對於 html* ,由於 html 和 * 之間沒有空格,所以也是一種 CSS 語法錯誤,但 IE7 不會忽略,而是錯誤地認為這裡有一個空格。對於第三種*+html,IE7 認為html 前面的DTD 聲明也是元素,所以html 會被選中,這三種方法中只有這一種方法是合法的CSS 寫法,也就是說可以通過校驗器的驗證,因此也是作者推薦的hack 用法。

最後作者給了最佳方式:

    IE 6 and below
        Use * html {} to select the html element.
    IE 🎜>    IE 7 only
        Use *+html {} to select the html element.
    IE 7 and modern browsers only
  Modern browsers only (not IE 7)
        Use html>/**/body {} to select the body element.

具體資訊參考原文:
Easy CSS hacks for IE7

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn