组合active和hover伪选择器是否正确,如:active:hover。?

时间:2010-12-03 23:17:14

标签: html css css-selectors

我在某个地方见过这个,但我找不到更多信息告诉我它是否正确:

.selector a:active:hover { color: #777; }
.selector a:hover:active { color: #777; }

我不记得它中的哪一个。

但无论如何,Firefox似乎并不喜欢它并且什么都不做。

这是一个显示不良做法的教程的另一个例子。??

3 个答案:

答案 0 :(得分:8)

两者都很好(并且相同)。我刚刚在Firefox 4.0b6 / Mac上测试过,它的运行方式与我预期的完全相同。在下面的示例中,当我指向它时,链接变为红色,而当我按住鼠标按钮时,链接变为绿色。

<!DOCTYPE HTML>
<title>Test</title>
<style>
a:hover { color: red; }
a:active { color: yellow; }
a:hover:active { color: green; }
</style>
<h1><a href="test">gggg</a></h1>

使用鼠标激活链接的样式与使用键盘时不同,这是不寻常的。

我怀疑你可能犯了一个经典错误。 :active表示“在激活时(例如,当鼠标按钮被按下时)”而不是“当href属性的值解析为当前页面的URI时”。

没有伪类意味着“当href属性的值解析为当前页面的URI时”,因为经典模式是将“当前”或“选定”类添加到服务器上的锚点在将HTML发送到客户端之前。

答案 1 :(得分:-2)

应该是

a.selector:active:hover {color:#777; }

a.selector:hover:active {color:#777; }

不是

.selector a:active:hover {color:#777; }

.selector a:hover:active {color:#777; }

简单:P

答案 2 :(得分:-3)

它不正确并且不起作用,你需要将它们分开。

.selector a:active, .selector a:hover { color: #777; }