兼容不同浏览器的CSSHack写法
2014-05-14来源:

所谓CSSHack,是指在CSS代码中嵌入诸如*,*html 等代码,方便于独立控制某种浏览器的具体样式。比如有些CSSHack只能被IE6或IE7识别,而Firefox等浏览器则不能识别。这样一来可以有效控制CSS在不同浏览器的表现,避免撰写多个CSS文件。

在这里大致整理了常用CSSHack的写法,帮助你更好地控制页面呈现:

1.*符号

IE浏览器能识别*符号,但其他浏览器诸如Firefox、Opera、Chrome等不能识别*符号。

例:在Firefox和IE中呈现不同的文字颜色:

color:red;*color:blue;

//在Firefox等非IE核心浏览器中,文字呈现红色;而IE中呈现蓝色。

2.!important

IE7不但能识别*符号,还能识别!important,而IE6只能识别前者。

例:在IE6和IE7中呈现不同的文字颜色:

color:red!important;color:blue;

//在IE7浏览器中,文字呈现红色;而IE6中呈现蓝色。

综合1和2,利用上述浏览器特性,可在CSS中判别Firefox,IE7,IE6并加载不同样式。

例:在Firefox,IE7,IE6中呈现三种不同文字颜色:

color:blue;*color:red!important;*color:green;

//在Firefox中,文字呈现蓝色,在IE7浏览器中,呈现红色;而IE6中呈现蓝色。

4.*html和*+html

IE核心的浏览器能识别*html和*+html,而Firefox等非IE核心浏览器不能识别。

例:在Firefox,IE7,IE6中呈现三种不同文字颜色:

#div{color:red;}

*html#div{color:green;}

*+html#div{color:blue;}

//第一句Firefox等可以正常识别,所以这些浏览器中文字呈红色;

//第二句IE6能识别并执行,用于针对IE6独立写的样式,文字绿色;

//第三句只有IE7才能正确识别,而IE6和其他非IE核心浏览器不能,文字呈蓝色。

更多信息请查看IT技术专栏

推荐信息
Baidu
map