为此,要解决IE8的问题,首先想到的是CSS HACK,现在流传比较多的方法是“\9”。还有人专门测试了一些列数值,从0-13,后面谁有兴趣继续。似乎没有人知道为什么\9会被所有IE(6以上)浏览器识别,有人这样解释:
据说”\9″是会被视为转义字符,在IE中被转义为一个空白字符,而非IE浏览器则不接受此形式。感觉像那么回事吧。今天,不小心又看到了IE8的CSS HACK,居然发现了一个更新的方法,“\0”,只有IE8可以识别!而后,还发现原来Safari和Chrome也有专门的HACK,所以,就出现了如题的文字,当然,其实Firefox和Opera是没有HACK的,可没有HACK不也算一种HACK嘛,哈哈。有意思,以后就不怕他们耍个性了,呵呵。整理后如下:
#test{
color:#000; /*FireFox Opera*/
[color:#FC0; /*Chrome Safari*/
color:#396\0; /*Internet Explorer 8*/
*color:#F90; /*Internet Explorer 7*/
_color:#06C; /*Internet Explorer 6*/
}
可事实上,问题还是有的,至少我在用IETester的时候,发现IE8并没有反应。这就又牵扯到前面说的另人讨厌的IE8升级问题了。因为在早期,针对IE8 beta版本的还有一种HACK方式,可IE8一升级就葛屁了,所以,不知道目前IETester的IE8是哪个版本(应该是beta 2),反正就是没反应……
如果你是个CSS Vaild的忠实拥护者,可以尝试以下代码,据说能通过CSS验证。
#test {
color: #999; /* FF & Opera*/
[color: #f00; /* Safari & Chrome */
color: #000; /* IE8 – it works! */
}
* html .test {
color: #00f; /* IE6 */
}
*+ html .test {
color: #ff0; /* IE7 */
}
一下是测试代码,上面两种写法都包含,自行把默认的div的id="test"改成class="test"就好了。
- HTML :\ Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行 运行此代码
其实,在写Xhtml的时候尽量考虑周全,是可以避免使用CSS HACK的,但不得已的时候,不用还能如何呢?前些日子还看到了CSS条件,很是兴奋,可怎么在本地测试都没有用。不知道为什么……等着吧,再过几年,或许就没这么多烦恼了……








已有人对此文发表了评论