我可以编写一个CSS选择器来选择没有特定类或属性的元素吗?

我想编写一个CSS选择器规则,选择所有没有特定类的元素。例如,给定以下HTML:

<html class=“可打印”>
<body class=“可打印”>
<h1 class=“可打印”>示例&lt/h1>
<导航>
<!--一些菜单链接--&燃气轮机;
&lt/导航>
<a href=“javascript:void(0)”onclick=“javascript:self.print()”>打印我&lt/a>
<p class=“可打印”>
这一页非常有趣,你应该把它打印出来!
&lt/p>
&lt/车身>
&lt/html>

我想编写一个选择器,用于选择没有“可打印”类的所有元素,在本例中,这些元素是nava元素

这可能吗

注意:在我想使用这个的实际HTML中,没有具有“printable”类的元素要比没有的元素多得多(我意识到在上面的示例中情况正好相反)

通常向:not()伪类添加一个类选择器,如下所示:

:不可打印{
/*风格*/
}
:不是([属性]){
/*风格*/
}

但是如果您需要更好的浏览器支持(IE8和更早版本不支持:not()),您可能最好为不支持的元素创建样式规则;“可打印”;班如果不管您对实际的标记怎么说,这都是不可行的,那么您可能必须绕过该限制来处理标记

请记住,根据您在此规则中设置的属性,其中一些属性可能被可打印的子体继承,或者以某种方式影响它们。例如,尽管未继承display,但在:not(.printable)上设置display:none将阻止它及其所有子体显示,因为它会从布局中完全删除元素及其子树。您通常可以通过使用可见性:hidden来解决这个问题,这将允许显示可见的子体,但隐藏的元素仍然会像最初一样影响布局。总之,要小心

发表评论