Мне кажется, что у 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 считает его «активным» навсегда.
Кажется, что это происходит только во фрейме, и проблема не проявляется в браузерах на основе KHTML.
Кто-нибудь нашел обходной путь?