不在其他元素内部的元素

时间:2012-06-15 10:30:13

标签: css css3 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属性值。

1 个答案:

答案 0 :(得分:4)

嗯...你正在选择一个孩子并要求与其父母相匹配。不会工作

有一种简单的方法

.style-me {
    color: red;
}

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