如何结合 :hover 和 :not()?

问题描述

我正在尝试为没有“is-current”类的元素创建悬停效果,但不知何故,以下 SCSS 无法按预期工作:

.class {
    &:not(.is-current):hover {
      color: #fff;
    }
    &.is-current {
      color: #000;
    }
}

我不明白为什么生成的 css 是这样的:

class::active,class::focus,class::hover {
    background: #fff;
}

我已经尝试过 &:not(".is-current") 但结果是一样的。

有人知道如何实现这一目标吗?

提前致谢!

解决方法

以下对我来说很正常,

.some {
    &.is-current { color: blue }
    &:not(.is-current):hover { color: red }
}

输出是

.some.is-current {
    color: blue;
}

.some:not(.is-current):hover {
    color: red;
}

就像您期望的那样,效果很好:

.some.is-current { color: blue }
.some:not(.is-current):hover { color: red }
<span class="some">One</span> · <span class="some is-current">One</span>

也许您的问题另有原因。