所谓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核心浏览器不能,文字呈蓝色。