2009-04-14 60 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

您還沒有正確的文檔類型以支持框架。這可能是問題所在。