在我看来,Gecko 有一个涉及 ":active" 的错误。为了说明,将其放入名为 test.html 的文件中:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "hxxp://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en" >
<head>
<style type="text/css">
.clickable {
border: solid black 1px;
padding: 2px;
cursor: pointer;
-moz-user-select: none;
}
.clickable:active {
background-color: gray;
}
</style>
</head>
<body>
<span class="clickable">blah</span>
</body>
</html>
现在在 FF3 中打开它。跨度应该有点像一个按钮:如果你在它上面按下鼠标,背景会改变颜色。当你 mouseup 时,它会恢复正常。
请注意,即使您在跨度内按下鼠标,将鼠标移到浏览器窗口外,然后在那里释放它,这也有效:在鼠标按下的部分,背景是灰色的。释放后,跨度恢复正常。
到目前为止,一切都很好。但是尝试将其包装在一个框架中:
<html>
<frameset cols="50%, 50%">
<frame src="test.html" />
<frame src="http://google.com" />
</frameset>
</html>
加载那个。现在,当您在跨度内按下鼠标时,将鼠标移到框架外的任何位置,然后鼠标向上,跨度将永远保持灰色——即,CSS 认为它永远是“:active”。
这似乎只发生在一个框架中,并且该问题不会出现在基于 KHTML 的浏览器中。
有人有解决方法吗?