子选择器招数(Hack)
最安全的过滤器依赖于未实现的CSS,而不是浏览器Bug。因为这些过滤器使用有效的CSS选择器来应用有效的声明,所以严格地说,他们根本不是过滤器。他们仅仅是某些浏览器所不能理解的有效CSS规则。这些过滤器中的第一个称为子选择器招数。Windows上的IE6和更低版本的IE不支持子选择器,所以可以使用它对这些浏览器隐藏规则。为了让这种过滤器起到作用,必须确保在子选择器前后没有空格。
在这个示例中,使用子选择器招数(Hack)对IE 5-6/Win 隐藏透明的北京PNG图象。
html>body {
background-image:(bg.png)
}
IE7 预期会支持子选择器,还会支持PNG透明度。通过以这种方式使用子选择器,就允许IE的新版本看到透明背景,而不需要修改代码,因而提供了向前兼容性。等于ie5,i56视而不见,而IE7可以用得恰当好处,这里并不是多浏览器兼容,而是向前兼容。
属性选择器招数(Hack)
另一种过滤器规则的有趣方法是使用属性选择器。许多当前的浏览器(比如 Safari–Mac苹果上的 和Firefox IE7)支持使用属性选择器,但是IE6并不支持它。因此,可以使用属性选择器在比较高级的浏览器中对类和ID应用样式。在这个示例中,使用属性选择器在符合标准的浏览器中将背景PNG应用于内容div:
div[id=”content”] {
background=url(bg.png);
}
你可以用这些让不同浏览器显示出不同的效果,当然也可以使用它在多浏览器里显示同样的效果。