css - 不在其他元素内部的元素

标签 css css-selectors

如果你有这个 HTML

<div>
    <span class="style-me">i want to be styled</span>
</div>
<div class="ignore-my-descendants">
    <span class="style-me">i want to be styled but my parent prevents it</span>
</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

然后这个 CSS 选择器

.style-me:not(.ignore-my-descendants *) {
    color: red;
}

不会匹配任何东西。可能是因为 :not() 只接受这里没有给出的简单选择器(我不确定,希望你能告诉我真正的原因)。 是否有一种纯 css 方法来过滤掉那些父元素符合给定条件的元素?

编辑:我不想对要忽略的元素应用任何值。 这很重要,因为无法预见元素所需的 display 属性值。

最佳答案

嗯...您正在选择一个 child 并要求匹配其 parent 。行不通

有一个简单的方法

.style-me {
    color: red;
}

.ignore-my-descendants .style-me {
        color: white;
    }

关于css - 不在其他元素内部的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11048989/

相关文章:

带 Bootstrap 的 CSS 表单无法居中和调整按钮大小

css - Highcharts 工具提示自定义 CSS 将插入符号/箭头变为白色

css - E :dir(dir) and E[dir ="dir"] in CSS?有什么区别

css - 在当前 SASS 嵌套中添加祖先选择器

css - 选择列表中的第一个嵌套子项而不是子项

css - Wordpress 覆盖 thickbox CSS 不可能吗?

html - 如何仅在环绕图像的链接上激活悬停效果

css - 我可以在 LESS mixin 中使用 CSS 伪类数组吗?

css - 如何更快地插入/编辑/分组 css 规则?

CSS 特异性最佳实践 : + selector vs class vs rule overwriting