首页 >web前端 >css教程 >CSS 可以选择没有特定类或属性的元素吗?

CSS 可以选择没有特定类或属性的元素吗?

Susan Sarandon
Susan Sarandon原创
2025-01-03 22:04:43887浏览

Can CSS Select Elements Without a Specific Class or Attribute?

可以编写 CSS 来选择缺少类或属性的元素吗?

当希望选择不具备类或属性的元素时,就会出现此问题特定的类或属性。例如,考虑下面的 HTML:

<html class="printable">
    <body class="printable">
        <h1 class="printable">Example</h1>
        <nav>
            <!-- Some menu links... -->
        </nav>
        <a href="javascript:void(0)" onclick="javascript:self.print()">Print me!</a>
        <p class="printable">
            This page is super interresting and you should print it!
        </p>
    </body>
</html>

在这种情况下,我们的目标是选择没有“printable”类的元素,即 nava

解决方案:

传统上,可以通过将 :not() 伪类应用于类选择器来实现此目的:

:not(.printable) {
    /* Styles */
}

:not([attribute]) {
    /* Styles */
}

但是,为了增强浏览器兼容性(IE8及以下缺少 :not() 支持),建议对元素进行样式化确实拥有“可打印”类别。如果这不切实际,则可能需要修改标记。

注意事项:

此规则中设置的属性可能会影响具有“printable”类的后代。例如,在 :not(.printable) 上设置 display: none 将隐藏它及其后代。相反,请考虑使用visibility:hidden以允许后代显示,同时保持原始布局。因此建议谨慎。

以上是CSS 可以选择没有特定类或属性的元素吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn