2009-04-14 59 views
0

在我看来,Gecko有一个涉及“:active”的bug。举例来说,把它放到一个名为test.html的文件中:为什么“:active”在Gecko框架内不能正常工作?

<!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> 

负载一个。现在,当你在范围内拖动鼠标时,将鼠标移动到框架外的任何位置,并且mouseup,范围永远保持灰色 - 即CSS永远认为它是“:active”。

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

任何人都有解决方法?

+0

如果您按住跨度上的鼠标按钮,将鼠标移动到窗口外并释放鼠标,这是否也会发生(没有框架)? – cmptrgeekken 2009-04-14 22:19:40

+0

你是不是在谈论我在这段中以“注意这个”开头的话? – mike 2009-04-14 22:41:25

回答

0

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