CSS3 使用 OR(而不是 AND)组合选择器

2024-02-25

给定这个选择器:

body[class*="page-node-add-"][class~="page-node-edit"] {background:red;}

它将匹配一个主体,该主体的类包含以下子字符串页面节点添加-并且一个类正是页面节点编辑

我想说匹配第一个或第二个(但不是两者)。是否可以?

使用逗号的问题:

如果我有一个很长的选择器,例如:

body[class*="page-node-add-"] form.node-form > .field-type-field-collection > table > thead tr th,
body[class~="page-node-edit"] form.node-form > .field-type-field-collection > table > thead tr th
{...}

这是一个痛苦,我本以为 CSS3 可以解决这个问题,我想象的是这样的:

body([class*="page-node-add-"]):or([class~="page-node-edit"]) {background:red;}

Thanks


您需要使用逗号将它们分开:

body[class*="page-node-add-"], body[class~="page-node-edit"] {background:red;}

使用逗号的问题:

...除了用逗号之外,你不能用任何其他方式来做到这一点。也许可以用 Selectors 3 来解决这个问题,但不幸的是规范另有规定。这只能通过以下方法来解决选择器4 http://www.w3.org/TR/selectors4/#matches,要么是因为它直到最近才被提出,要么是因为was提议但未晋级 3 级。

在选择器的第 4 级中,您将能够执行以下操作:

body:matches([class*="page-node-add-"], [class~="page-node-edit"]) form.node-form > .field-type-field-collection > table > thead tr th
{...}

目前,该项目正在以其最初提议的名称实施,:any(),带有前缀:-moz-any() and :-webkit-any()。但使用:any()考虑到面向公众的 CSS 是毫无意义的

  1. 只有 Gecko 和 WebKit 支持;和

  2. 你必须复制你的规则集 https://stackoverflow.com/a/8318202/106224由于前缀选择器的处理方式,这不仅违背了:matches()选择器,但让事情变得更糟:

    body:-moz-any([class*="page-node-add-"], [class~="page-node-edit"]) form.node-form > .field-type-field-collection > table > thead tr th
    {...}
    body:-webkit-any([class*="page-node-add-"], [class~="page-node-edit"]) form.node-form > .field-type-field-collection > table > thead tr th
    {...}
    

换句话说,直到实现将自身更新为标准化:matches(),没有其他可行的解决方案(除了使用预处理器为您生成重复选择器之外)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS3 使用 OR(而不是 AND)组合选择器 的相关文章

随机推荐

  • 实际上如何使用 GraphStream 在 swing 中绘制图形?

    我正在尝试实现绘图秋千内的教程图 http graphstream project org doc Tutorials Graph Visualisation 1 1 integrating the viewer in your gui 但
  • 如何创建 Visual Studio Code Python 工作区?

    我正在尝试在 macOS 上的 Visual Studio Code 上设置 Python 我的计算机上安装了 Python 2 7 和 3 5 解释器 当我尝试创建我的第一个 Python 文件时 import未找到模块 根据我看到的各种
  • 从桌面应用程序进行身份验证

    我正在构建一个 Windows 服务 该服务会在某些条件下将文件上传到 Box com 如何在用户不访问网页并输入用户名和密码的情况下进行身份验证 我似乎无法在文档中找到详细信息 thanks 目前 您有两种选择 您可以注册 即时模式 测试
  • 错误 React.Children.only 期望接收单个 React 元素子元素

    不完全确定我的应用程序出了什么问题 我正在使用 create react app 并且尝试将所有组件渲染到相应的根 div 中 问题是 我能够将所有组件渲染到页面上 除了最后一个组件 分数组件 我什至尝试将该组件放入 div 中 但仍然遇到
  • 如何在 OpenGL 中设置文本颜色

    我是 openGL 的新手 想设置文本颜色 尝试了 glColor3f 函数 但它改变了绘图颜色 因为我只想改变文本颜色 我该怎么办 您可以将当前颜色压入属性堆栈 更改颜色 绘制文本 然后弹出堆栈以恢复原始颜色 glPushAttrib G
  • 标记多个日期动态反应原生wix

    我正在使用反应本机日历 一旦标记参数传递给日历对象 该库就提供了在日历上标记日期的能力 我尝试传递一个对象数组 但没有成功发送多个日期 如下所示也不起作用 如何动态标记多个日期呢 var nextDay 2018 06 01 2018 06
  • 如何在 Java 中与两(2)个 SwingWorker 类共享数据

    我有两个 SwingWorker 类 FileLineCounterThread and FileDivisionThread 我将执行这两个线程 当行计数线程完成时 它将结果传递给文件分割线程 我不知道如何将结果传递给启动的线程 impo
  • 将安全性集成到启用 SSL 的 Kafka 1.0

    我无法将安全性集成到启用了 ssl 的 Kafka 1 0 这是我的 server properties 的更改 security inter broker protocol SSL listeners PLAINTEXT localhos
  • 询问用户是否想要重复 python 程序

    这是我现在的代码 我需要询问用户是否想再次重复该程序 我知道你需要在这里使用 while 循环 但我被困住了 userinput eval input Enter the month as a number results userinpu
  • 如何在 MVC3 应用程序中构建 HTML 消息以进行发送?

    我在早上洗澡的时候就在想这个问题 如何在 MVC3 应用程序中构建 HTML 消息 我在想像使用PartialView并调用生成的 HTML 将其保存为字符串以在 HtmlMessage 正文中使用它 而不是做类似的事情 string bo
  • 我可以获得maven执行的测试用例总数吗?

    我有一个 Maven 项目 其中有几个子项目 每个子项目都有自己的测试用例 并且都运行良好 我想知道在父项目上执行的测试用例的数量 无论如何 我可以获得所有执行的测试用例的详细信息吗 甚至测试用例的数量也可以 请分享您的宝贵意见 如果您想一
  • 如何在FileUpload控制器中选择路径后显示图像而不点击

    最近我一直在用 ASP NET c 开发 Web 表单应用程序 我有一个图像控件
  • 如何找到潜在的非空列?

    我正在使用一个 SQL Server 数据库 该数据库的约束非常少 并且想要应用一些非空约束 有没有办法扫描数据库中所有可为空的列并选择哪些列不包含任何空值 甚至更好地计算空值的数量 也许用一点动态 SQL Example Declare
  • GPU - 系统内存映射

    如何映射系统内存 RAM 以供 GPU 访问 我很清楚虚拟内存如何为 cpu 工作 但不确定当 GPU 访问 GPU 映射的系统内存 主机 时 虚拟内存如何工作 基本上与数据如何从系统内存复制到主机内存以及反之亦然有关 您能提供有参考文章支
  • Google Drive via OAuth 发布版本收到 dailyLimitExceededUnreg

    我根本无法克服这一点 错误和相关搜索无法修复它 我来自 Drive Android API 它运行良好 Google 很快就结束了这种情况 不得不切换到 OAuth Drive 实施 不管怎样 几个月来 所有的调试 apk 都 100 正常
  • 未找到组件工厂。您是否将其添加到@NgModule.entryComponents?

    在将 ag grid 与 angular4 一起使用时 我遇到了以下错误消息 我试图通过 HTTP 获取 json 后显示行数据 this gridOptions api setRowData this gridOptions rowDat
  • 根据第一个下拉列表选择填充 HTML/PHP 下拉列表

    我有 1 个用于类别 食品 饮料等 的下拉菜单 在我的 MySQL 表 t menu category 中 我有 ID category name sub category name category description 1 Food
  • Sencha Touch 2 安卓性能

    我听说 sencha 一般来说 仅仅因为使用 javascript 在 Android 设备上就存在性能问题 我熟悉 android webview 对象的局限性 但我想知道这些性能声明是否有任何优点 特别是在 Sencha Touch 2
  • TreeSet 违反了 Set 契约?

    我试图回答this https stackoverflow com questions 17608422 i am able to insert duplicate entries in treeset how to overcome th
  • CSS3 使用 OR(而不是 AND)组合选择器

    给定这个选择器 body class page node add class page node edit background red 它将匹配一个主体 该主体的类包含以下子字符串页面节点添加 并且一个类正是页面节点编辑 我想说匹配第一个