CSS 选择器“(A 或 B)和 C”?

新手上路,请多包涵

这应该很简单,但我找不到它的搜索词。

假设我有这个:

 <div class="a c">Foo</div>
<div class="b c">Bar</div>

在 CSS 中,如何创建一个选择器来匹配匹配“(.a 或 .b)和 .c”的内容?

我知道我可以这样做:

 .a.c,.b.c {
  /* CSS stuff */
}

但是,假设我将不得不通过各种逻辑组合大量执行此类逻辑,是否有更好的语法?

原文由 Josh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

有更好的语法吗?

否。CSS’ or 运算符 ( , ) 不允许分组。它本质上是选择器中优先级最低的逻辑运算符,因此您必须使用 .a.c,.b.c

原文由 Matt Ball 发布,翻译遵循 CC BY-SA 3.0 许可协议

还没有,但是有实验性的 :is() (以前的 :matches() )伪类选择器就是这样做的:

 :is(.a .b) .c {
  /* style properties go here */
}

您可以在 此处此处 找到有关它的更多信息。目前,大多数浏览器都支持其初始版本 :any() ,其工作方式相同,但将被替换为 :is() 。我们只需要再等一会儿就可以在任何地方使用它了(我肯定会的)。

原文由 Metalcoder 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题