not()不会影响后代div

  • 本文关键字:影响 后代 div not css
  • 更新时间 :
  • 英文 :


我有一个非常奇怪的行为"not()" css选择器

下面是我的简化代码:
<div id="mapDiv" class="mapDiv mapDiv1">
    pippo
    <div class="gm-style">pluto</div>
</div>
<div id="mapDiv2" class="mapDiv mapDiv2">
    pippo
    <div class="gm-style">pluto</div>
</div>

and my css:

.mapDiv1,.mapDiv2
{
    width:300px;
    height:100px;
    border:solid 1px red;
}
.mapDiv div
{
    width:200px;
    height:50px;
    border:solid 1px blue;
}
:not(.mapDiv1) div
{
    color:green;
}

这里提供了一个jsFiddle

我认为color:green将仅应用于第二个框文本,由于not()选择器....相反,它应用于两者。

你能告诉我为什么吗?

根据我的理解,:not()是一个否定伪类。

这意味着,首先你选择了一堆元素,然后使用否定伪类从选定的一堆元素中删除元素。

因此,它应该以选择器作为前缀。

如果你把css改成:

div:not(.mapDiv1)
{
 color:green;
}

这将选择所有div,除了类为'.mapDiv1'的div

如果你把代码改成:

div:not(.mapDiv1) div
{
color:green;
}

这将选择父div中的所有div,除了那些类为'. mapdiv1 '的父div。

你必须改变你的代码

div:not(.mapDiv1)
{
 color:green;
}

我把你的提琴更新为提琴

演示

div:not(.mapDiv1) div {
    color:green;
}

更多信息请阅读

try this

div:not(.mapDiv1) {
   color:green;
}

最新更新