0

在我看来,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 的浏览器中。

有人有解决方法吗?

4

1 回答 1

0

您没有正确的文档类型来支持框架。这可能是问题所在。

于 2009-04-14T22:57:51.503 回答