兼容不同瀏覽器的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)藍(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)色。