标题基本上已经说明了一切。
假设我有一个元素,我想在 :hover
上更改它的颜色,但是当被点击时,我想让它切换回其原始颜色。因此,我尝试了以下代码:
a:link, a:visited, a:active {
background: red;
}
a:hover {
background: green;
}
事实证明,这种方法不起作用。在经过激烈思考后,我意识到 :hover
状态会覆盖 :active
状态。以下方法可以轻松解决此问题:
a:link, a:visited {
background: green;
}
a:hover {
background: red;
}
a:active {
background: green;
}
我可以将第1条规则与第3条规则结合起来。
这里是示例:http://jsfiddle.net/V5FUy/
我的问题是:这是预期的行为吗?据我所理解的,:active
状态应该始终优先于:hover
状态,因为:active
状态几乎总会与:hover
状态一起使用。
:active
和:hover
被添加的顺序有关(分别添加到 CSS1 和 CSS2 中)... 目前我们似乎处于历史领域,而不是编程领域。 - Zach Snowa
标签相关的伪类正确顺序的人来说,它是 - LoVe before HAte。Link
->Visited
->Hover
->Active
- RBT