有没有办法在CSS中回退到非伪类?

时间:2016-07-21 00:06:17

标签: css css3 css-selectors pseudo-class css-cascade

如果我有一个蓝色div,其他人拥有

的代码
.stuff {
  background-color: blue;
}

我希望它在悬停时变红

.stuff:hover {
  background-color: red;
}

但是我希望能够为它添加一个类以回到非伪类状态:

.stuff.otherclass:hover {
  background-color: unset; /* Want blue in this case */
}

是否有返回伪前类状态的CSS选项?

Codepen演示: http://codepen.io/anon/pen/EyEWww

1 个答案:

答案 0 :(得分:1)

回滚级联的唯一方法是使用revert关键字,但它会回滚到另一个来源。

无法将output of the cascade中的第二个值变为cascaded value,而忽略了获胜者。

相反,您可以修改选择器并使用:not()伪类:

.stuff {
  background-color: blue;
}
.stuff:not(.otherclass):hover {
  background-color: red;
}

或者,或者,利用比.stuff.otherclass:hover

更具特异性的.stuff:hover
.stuff, .stuff.otherclass:hover {
  background-color: blue;
}
.stuff:hover {
  background-color: red;
}