我正在寻找一个 Select 器,它将 Select 所有元素,如果他们有一个特定子元素.例如, Select 所有<div>个子对象为<span>的对象.

可能吗?

推荐答案

如果元素包含特定的子元素,是否可以 Select 该元素?

不幸的是还没有.

CSS2CSS3 Select 器规格不允许任何类型的父 Select .


关于规范变更的注记

这是对这篇帖子从现在开始的准确性的免责声明.CSS中的父 Select 器已经讨论了很多年.由于没有找到共识,变化不断发生.我会努力使这个答案保持最新,但是请注意there may be inaccuracies due to changes in the specifications.


一个较老的"Selectors Level 4 Working Draft"描述了一个功能,即指定"subject" of a selector的能力.This feature has been dropped and will not be available for CSS implementations.

主题将成为 Select 器链中应用样式的元素.

Example HTML
<p><span>lorem</span> ipsum dolor sit amet</p>
<p>consecteture edipsing elit</p>

此 Select 器将设置span元素的样式

p span {
    color: red;
}

该 Select 器将设置p元素的样式

!p span {
    color: red;
}

最近的"Selectors Level 4 Editor’s Draft"包括"关系伪类::has()"

:has()将允许作者根据元素的内容 Select 元素.我的理解是, Select 它是为了提供与jQuery's custom :has()伪 Select 器*的兼容性.

在任何情况下,继续上面的示例,要 Select 包含spanp元素,可以使用:

p:has(span) {
    color: red;
}

*这让我怀疑jQuery是否实现了 Select 器主题,主题是否会保留在规范中.

Css相关问答推荐

Css-如何隐藏WP管理菜单上没有css类的第4<;li&>

在AND设计令牌上使用不同的主题

本机CSS嵌套混乱

在最小和最大视口之间时具有固定值的 CSS 钳位

不明白为什么 div 不均匀并且不填满页面

CSS 仅过渡背景 colored颜色

如何在真实文本旁边制作文本阴影,使其看起来像 css 中的重复文本?

内部和外部 div 之间的像素大小的间隙

如何在 CSS 中更改 ::marker SVG colored颜色 ?

在整个 DIV 周围添加 CSS 框阴影

如何让 Firefox 在文件更改时自动刷新?

悬停时如何在图像上显示文字?

Flexbox 代码适用于除 Safari 之外的所有浏览器.为什么?

如何在 CSS 中绘制一个圆形扇区?

使用 inline-block 换行?

如何使 window.scrollTo() 效果平滑

如何让 flexbox 在计算中包含填充?

我应该在我的 Bootstrap 项目中使用 normalize.css 吗?

为什么 height:0 不隐藏我的填充

html元素(div)的全高,包括边框,填充和边距?