兼容不一樣瀏覽器的 CSS Hack 寫法

所謂 CSS Hack,是指在 CSS 代碼中嵌入諸如 *,*html  等代碼,方便於獨立控制某種瀏覽器的具體樣式。好比有些 CSS Hack 只能被 IE6 或 IE7 識別,而 Firefox 等瀏覽器則不能識別。這樣一來能夠有效控制 CSS 在不一樣瀏覽器的表現,避免撰寫多個 CSS 文件。

芒果在這裏大體整理了經常使用 CSS Hack 的寫法,幫助你更好地控制頁面呈現:

1. * 符號

IE 瀏覽器能識別 * 符號,但其餘瀏覽器諸如 Firefox、Opera、Chrome 等不能識別 * 符號。

例:在 Firefox 和 IE 中呈現不一樣的文字顏色:html

  1. color:red;*color:blue;
  2. //在 Firefox 等非 IE 核心瀏覽器中,文字呈現紅色;而 IE 中呈現藍色。

2. !important

IE7 不但能識別 * 符號,還能識別 !important,而 IE6 只能識別前者。

例:在 IE6 和 IE7 中呈現不一樣的文字顏色:瀏覽器

  1. color:red !important;color:blue;
  2. //在 IE7 瀏覽器中,文字呈現紅色;而 IE6 中呈現藍色。

綜合 1 和 2,利用上述瀏覽器特性,可在 CSS 中判別 Firefox,IE7,IE6 並加載不一樣樣式。
例:在 Firefox,IE7,IE6 中呈現三種不一樣文字顏色:spa

  1. color:blue;*color:red !important;*color:green;
  2. //在 Firefox 中,文字呈現藍色,在 IE7 瀏覽器中,呈現紅色;而 IE6 中呈現藍色。

4. *html 和 *+html
IE 核心的瀏覽器能識別*html 和*+html,而 Firefox 等非 IE 核心瀏覽器不能識別。

例:在 Firefox,IE7,IE6 中呈現三種不一樣文字顏色:code

  1. #div {color:red;}
  2. *html #div {color:green;}
  3. *+html #div{color:blue;}
  4. //第一句 Firefox 等能夠正常識別,因此這些瀏覽器中文字呈紅色;
  5. //第二句 IE6 能識別並執行,用於針對 IE6 獨立寫的樣式,文字綠色;
  6. //第三句只有 IE7 才能正確識別,而 IE6 和其餘非 IE 核心瀏覽器不能,文字呈藍色。
相關文章
相關標籤/搜索