所謂csshack,是指在css代碼中嵌入諸如*,*html 等代碼,方便于獨立控制某種瀏覽器的具體樣式。比如有些csshack只能被ie6或ie7識別,而firefox等瀏覽器則不能識別。這樣一來可以有效控制css在不同瀏覽器的表現(xiàn),避免撰寫多個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獨立寫的樣式,文字綠色;
//第三句只有ie7才能正確識別,而ie6和其他非ie核心瀏覽器不能,文字呈藍(lán)色。