我想使用not:所以它将排除div2元素中的所有p元素。 这是html文件:
<body>
<p> not in any div </p>
<div id="div1">
<p> div1 text1</p>
<div>
<p> div2 inner text2</p>
<div>
<p> div1 innermost text3</p>
<p> div1 innermost text4</p>
</div>
</div>
</div>
<div id="div2">
<p> div2 text1</p>
<div>
<p> div2 inner text2</p>
<div>
<p> div2 innermost text3</p>
<p> div2 innermost text4</p>
</div>
</div>
</div>
<div id="div3">
<p> div3 text1</p>
<div>
<p> div3 inner text2</p>
<div>
<p> div3 innermost text3</p>
<p> div3 innermost text4</p>
</div>
</div>
</div>
</body>
这是我使用的CSS文件,(显然)它运行不正常:
div:not(#div2) p{
color:green;
}
这只将p元素排除在:“div2 text1”,但不包括div2中的其他三个:
我相信这是因为“not:”只排除了div2 div而不是其中的两个div。
如何更改“:not”中的上下文,这样它不仅包括div2 div,还包括div2中的所有div?
使用jQuery可以轻松实现我想要做的事情:
$('div p').not('#div2 p');
总结一下: 如何更改此css行:
div:not(#div2) p{
那么它会像jQuery那样做(选择)吗?或换句话说:
选择div中的所有p元素,除非它是div2。换句话说:
选择包含单词div1或div3的所有p元素(但不使用此信息)
答案 0 :(得分:5)