为什么“:active”没有 在 Gecko 框架内可以正常工作吗?

发布于 2024-07-17 06:12:13 字数 1204 浏览 10 评论 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 中打开它。 跨度应该有点像一个按钮:如果你将鼠标放在它上面,背景颜色就会改变。 当鼠标松开时,它恢复正常。

请注意,如果您在范围内按下鼠标,将鼠标移到浏览器窗口外,然后在此处释放鼠标,这甚至可以工作:在鼠标按下的部分期间,背景为灰色。 释放后,跨度恢复正常。

到目前为止,一切都很好。 但尝试将其包装在一个框架中:

<html>
  <frameset cols="50%, 50%">
    <frame src="test.html" />
    <frame src="http://google.com" />
  </frameset>
</html>

加载那个一个。 现在,当您在跨度内按下鼠标,将鼠标移动到框架外的任何位置,然后鼠标向上移动时,跨度将永远保持灰色——即,CSS 认为它永远是“:active”。

这似乎只发生在框架中,并且该问题不会出现在基于 KHTML 的浏览器中。

有人有解决方法吗?

It seems to me that Gecko has a bug involving ":active". To illustrate, put this into a file called 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>

Now open it up in, say, FF3. The span should work a little like a button: if you mousedown on it, the background changes color. When you mouseup, it returns to normal.

Note that this even works if you mousedown inside the span, move the mouse outside the browser window, and release it there: during the part where the mouse is down, the background is gray. When released, the span returns to normal.

So far so good. But try wrapping it in a frame:

<html>
  <frameset cols="50%, 50%">
    <frame src="test.html" />
    <frame src="http://google.com" />
  </frameset>
</html>

Load that one up. Now when you mousedown inside the span, move the mouse anywhere outside the frame, and mouseup, the span stays gray forever -- i.e., CSS considers it ":active" forever.

This only seems to happen in a frame, and the problem doesn't show up in KHTML-based browsers.

Anyone got a workaround?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花开雨落又逢春i 2024-07-24 06:12:13

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

You haven't got the right doctype to support frames. This might be the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文