兼容不同瀏覽器的CSSHack寫法

字號:


    所謂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)藍色。
    2.!important
    IE7不但能識別*符號,還能識別!important,而IE6只能識別前者。
    例:在IE6和IE7中呈現(xiàn)不同的文字顏色:
    color:red!important;color:blue;
    //在IE7瀏覽器中,文字呈現(xiàn)紅色;而IE6中呈現(xiàn)藍色。
    綜合1和2,利用上述瀏覽器特性,可在CSS中判別Firefox,IE7,IE6并加載不同樣式。
    例:在Firefox,IE7,IE6中呈現(xiàn)三種不同文字顏色:
    color:blue;*color:red!important;*color:green;
    //在Firefox中,文字呈現(xiàn)藍色,在IE7瀏覽器中,呈現(xiàn)紅色;而IE6中呈現(xià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核心瀏覽器不能,文字呈藍色。