3

如何选择<div>除具有某些类的元素中的 div 之外的所有元素?

试过:

 div :not(.test div)
 div:not(.test div) 

但不起作用!


编辑:

这是所要求的 HTML。

<div>
</div>

<span class="test">
 <div/>
</span>
4

1 回答 1

7

div后面没有空格,所以和:not它有关系,那么第二个div是child,所以不是一部分:not

div:not(.test) div {
    /* style */
}

为了

<div class="test">
    <div></div>
</div>
<div>
    <div></div> <!-- gets selected -->
</div>

编辑:当您添加标记时,正确的版本将是

div :not(.test) div {
    /* style */
}

为了

<div>
    <span class="test">
        <div></div>
    </span>
    <span>
        <div></div> <!-- gets selected -->
    </span>
</div>

或者

span:not(.test) div {
    /* style */
}

为了

<span class="test">
    <div></div>
</span>
<span>
    <div></div> <!-- gets selected -->
</span>

因为您没有span在原始问题中提及,也没有指定跨度本身是否在 div 内。


在这种情况下,您还应该考虑>在选择器中使用以缩小范围。

于 2013-10-03T15:19:32.457 回答