屬性Hack

語法:

selector{<hack>?property:value<hack>?;}

取值:

_:
選擇IE6及以下。連接線(中劃線)(-)亦可使用,爲了避免與某些帶中劃線的屬性混淆,所以使用下劃線(_)更爲合適。
*:
選擇IE7及以下。諸如:(+)與(#)之類的均可使用,不過業界對(*)的認知度更高
\9:
選擇IE6+
\0:
選擇IE8+和Opera
[;property:value;];:
選擇webkit核心浏覽器(Chrome,Safari)。IE7及以下也能識別。中括號內外的3個分號必須保留,第一個分號前可以是任意規則或任意多個規則
[;color:#f00;];[color:#f00;color:#f00;];[margin:0;padding:0;color:#f00;]; 是等價的。生效的始終是中括號內的最後一條規則,所以通常選用第一種寫法最爲簡潔。

說明:

選擇不同的浏覽器及版本
  • 尽可能减少对CSS Hack的使用。Hack有風險,使用需謹慎
  • 通常如未作特別說明,本文檔所有的代碼和示例的默認運行環境都爲標准模式。
  • 一些CSS Hack由于浏览器存在交叉认识,所以需要通过层层覆盖的方式来实现对不同浏览器进行Hack的。如下面这个例子:

    如想同一段文字在IE6,7,8顯示爲不同顔色,可這樣寫:

    .test{
    
    	color:#090\9; /* For IE8+ */
    
    	*color:#f00;  /* For IE7 and earlier */
    
    	_color:#ff0;  /* For IE6 and earlier */
    
    }

    * 上述Hack均需运行在标准模式下,若在怪异模式下运行,这些Hack将会被不同版本的IE相互识别,导致失效。

示例: