Css :not(:类型的最后一个)不上课

Css :not(:类型的最后一个)不上课,css,css-selectors,Css,Css Selectors,为什么:not(:type的最后一个)在以下情况下不起作用?我怎样才能修好它 JSFiddle: HTML: 如前所述,原因是:类型的last of匹配其元素类型的最后一个同级元素,在本例中为div。由于最后一个div不是最后一个.comment,因此它不匹配 与for不同的是,没有办法使用纯CSS来匹配类的最后一个元素,即使使用重写也不行。您应该使用有关现有结构的信息来创建与您要查找的图元匹配的选择器,例如: .comment:not(:nth-last-child(2)) 否则,请在最后一

为什么
:not(:type的最后一个)
在以下情况下不起作用?我怎样才能修好它

JSFiddle

HTML:


如前所述,原因是
:类型的last of
匹配其元素类型的最后一个同级元素,在本例中为
div
。由于最后一个
div
不是最后一个
.comment
,因此它不匹配

与for不同的是,没有办法使用纯CSS来匹配类的最后一个元素,即使使用重写也不行。您应该使用有关现有结构的信息来创建与您要查找的图元匹配的选择器,例如:

.comment:not(:nth-last-child(2))

否则,请在最后一个
.comment
中添加一个额外的类名并将其排除,或者修改结构本身以满足您的需要。

如果您的结构从未更改,则:

div {
    color:red;
}
:nth-last-of-type(2) {
    color: black;
}
这是一个简单的方法:


:not()
仍有限制。

:类型的最后一个在类上不起作用。它用于元素类型。由于所有的元素都是div
s,它显然不起作用。对于这种情况,我还有什么可以使用的吗?我自己找到了一个解决方案。我只是简单地将div改为span,其中类是
.comment
,并在CSS中显示
.comment
block
。div:not(:第n个类型(2)){color:red}
.comment:not(:nth-last-child(2))
div {
    color:red;
}
:nth-last-of-type(2) {
    color: black;
}