You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用CSS选择同时包含两个指定子元素的元素?

如何用CSS选择器匹配同时包含两个指定子元素的元素?

你需要的是同时满足两个包含条件的选择器,而:has(h2, .subtitle)是“包含h2 或 .subtitle”的逻辑,要实现“且”的逻辑,只需要把两个条件拆分成独立的:has()伪类链式使用即可:

section:has(h2):has(.subtitle) {
  background: #F00;
}

对应的HTML示例:

<section> <!-- 会匹配 -->
  <h2>Header text</h2>
  <div class="subtitle"></div>
</section>

<section> <!-- 不会匹配 -->
  <h2>Header text</h2>
</section>

<section> <!-- 不会匹配 -->
  <div class="subtitle"></div>
</section>

原理说明

CSS的伪类是逻辑与的关系,当你给同一个选择器叠加多个:has()时,只有同时满足所有:has()内的条件,该元素才会被选中。这里第一个:has(h2)确保section包含h2元素,第二个:has(.subtitle)确保section包含带.subtitle类的元素,两者同时满足时才会应用样式。

内容的提问来源于stack exchange,提问作者Stevoisiak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 10:03:11