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 ベースのブラウザでは問題は発生しません。
誰でも回避策がありますか?