首页 > 解决方案 > 如何将 :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")了,但结果是一样的。

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

提前致谢!

标签: csssasscss-selectors

解决方案


以下对我来说很正常,

.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>

也许您的问题还有其他问题。


推荐阅读