如何用纯CSS选择包含特定子元素的指定父节点?
问题:CSS选择包含特定子元素的父节点中的指定项
原始HTML结构
<a id="fixed">01</a> <a id="fixed">02</a> <a id="fixed">03</a> <a href="" id="fixed"><span>001</span></a> <a href="" id="fixed"><span>002</span></a> <a href="" id="fixed"><span>003</span></a>
需求
需要选中包含<span>002</span>的<a>标签,即目标元素:
<a href="" id="fixed"><span>002</span></a>
尝试与疑问
- 使用选择器
a#fixed:has(>span)可选中最后三个<a>元素,但无法通过:nth-child(2)筛选出这三个中的第二个。 - 虽能通过JavaScript代码
selectAll()[1].parentNode实现目标选择,但需纯CSS方案。 - 疑问:
:has()是否无法与:nth-child()或:nth-of-type()联用?如何通过纯CSS选择多个具备相同子元素特征的父节点中的某一个?
补充说明
- 代码中id重复为原有结构问题,非本次讨论重点。
:has()选择器兼容性不佳。- 经讨论,目前纯CSS无法实现该需求(更新于2022/9/30)。
内容的提问来源于stack exchange,提问作者stackOfCats
相关产品推荐
相关产品推荐

