我想编写一个CSS选择器规则,选择所有没有特定类的元素。例如,给定以下HTML:
<;html class=“可打印”>;
<;body class=“可打印”>;
<;h1 class=“可打印”>;示例</h1>;
<;导航>;
<;!--一些菜单链接--&燃气轮机;
</导航>;
<;a href=“javascript:void(0)”onclick=“javascript:self.print()”>;打印我</a>;
<;p class=“可打印”>;
这一页非常有趣,你应该把它打印出来!
</p>;
</车身>;
</html>;
我想编写一个选择器,用于选择没有“可打印”类的所有元素,在本例中,这些元素是nav和a元素
这可能吗
注意:在我想使用这个的实际HTML中,没有具有“printable”类的元素要比没有的元素多得多(我意识到在上面的示例中情况正好相反)
通常向:not()伪类添加一个类选择器,如下所示:
:不可打印{
/*风格*/
}
:不是([属性]){
/*风格*/
}
但是如果您需要更好的浏览器支持(IE8和更早版本不支持:not()),您可能最好为不支持的元素创建样式规则;“可打印”;班如果不管您对实际的标记怎么说,这都是不可行的,那么您可能必须绕过该限制来处理标记
请记住,根据您在此规则中设置的属性,其中一些属性可能被可打印的子体继承,或者以某种方式影响它们。例如,尽管未继承display,但在:not(.printable)上设置display:none将阻止它及其所有子体显示,因为它会从布局中完全删除元素及其子树。您通常可以通过使用可见性:hidden来解决这个问题,这将允许显示可见的子体,但隐藏的元素仍然会像最初一样影响布局。总之,要小心