所謂CSSHack,是指在CSS代碼中嵌入諸如*,*html 等代碼,方便于獨(dú)立控制某種瀏覽器的具體樣式。比如有些CSSHack只能被IE6或IE7識別,而Firefox等瀏覽器則不能識別。這樣一來可以有效控制CSS在不同瀏覽器的表現(xiàn),避免撰寫多個(gè)CSS文件。
在這里大致整理了常用CSSHack的寫法,幫助你更好地控制頁面呈現(xiàn):
1.*符號
IE瀏覽器能識別*符號,但其他瀏覽器諸如Firefox、Opera、Chrome等不能識別*符號。
例:在Firefox和IE中呈現(xiàn)不同的文字顏色:
color:red;*color:blue;
//在Firefox等非IE核心瀏覽器中,文字呈現(xiàn)紅色;而IE中呈現(xiàn)藍(lán)色。
2.!important
IE7不但能識別*符號,還能識別!important,而IE6只能識別前者。
例:在IE6和IE7中呈現(xiàn)不同的文字顏色:
color:red!important;color:blue;
//在IE7瀏覽器中,文字呈現(xiàn)紅色;而IE6中呈現(xiàn)藍(lán)色。
綜合1和2,利用上述瀏覽器特性,可在CSS中判別Firefox,IE7,IE6并加載不同樣式。
例:在Firefox,IE7,IE6中呈現(xiàn)三種不同文字顏色:
color:blue;*color:red!important;*color:green;
//在Firefox中,文字呈現(xiàn)藍(lán)色,在IE7瀏覽器中,呈現(xiàn)紅色;而IE6中呈現(xiàn)藍(lán)色。
4.*html和*+html
IE核心的瀏覽器能識別*html和*+html,而Firefox等非IE核心瀏覽器不能識別。
例:在Firefox,IE7,IE6中呈現(xiàn)三種不同文字顏色:
#div{color:red;}
*html#div{color:green;}
*+html#div{color:blue;}
//第一句Firefox等可以正常識別,所以這些瀏覽器中文字呈紅色;
//第二句IE6能識別并執(zhí)行,用于針對IE6獨(dú)立寫的樣式,文字綠色;
//第三句只有IE7才能正確識別,而IE6和其他非IE核心瀏覽器不能,文字呈藍(lán)色。
更多信息請查看IT技術(shù)專欄