Почему ": active" не работает должным образом внутри фрейма Gecko? - PullRequest
0 голосов
/ 15 апреля 2009

Мне кажется, что у 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.

Кто-нибудь нашел обходной путь?

1 Ответ

0 голосов
/ 15 апреля 2009

У вас нет правильного типа документа для поддержки фреймов. Это может быть проблемой.

...