Проблема CSS: a:hover, не работающий с IE (css Ниндзя нуждался),

Существует большая соответствующая литература по этой проблеме в радарном мире (она назвала теорию обнаружения).

Вы могли бы взглянуть на "ячейку, составляющую в среднем CFAR" (постоянный уровень ложной тревоги) обнаружение. Википедия имеет немного здесь . Ваша идея очень похожа на это, и она должна работать! :)

Удачи!

12
задан TimJK 18 August 2009 в 10:08
поделиться

7 ответов

Первым делом я бы дважды проверил правильность порядка псевдо-селекторов.

Это должно быть-

a:link {color:#FF0000} /* unvisited link */  
a:visited {color:#00FF00} /* visited link */  
a:hover {color:#FF00FF} /* mouse over link */  
a:active {color:#0000FF} /* selected link */  

Единственная конкретная проблема с зависанием IE, которую я помню, касается не -link элементы, поэтому я не думаю, что это ваша проблема. http://www.bernzilla.com/item.php?id=762 - На всякий случай.

Если это не ответ на ваш вопрос, не возражаете ли вы опубликовать связанный блок css?


GAH- Это было непросто!

Похоже, IE ломается, потому что ссылки не имеют связанного элемента Href. Исправьте это, и все будет в порядке.

- Последние новости - Я могу быть идиотом - Это было последнее, что я изменил на своей тестовой странице, и это исправило, но когда я собрал все вместе, оно сломалось везде .. Так что относитесь к тому, что я только что опубликовал, с недоверием. Я отступаю, чтобы посмотреть, что произошло.

8
ответ дан 26 October 2019 в 11:17
поделиться

Вы можете использовать выражение в своем CSS. Я использую эту технику, разработанную мною для сайта клиента.

Просто поместите ее в КОНЕЦ вашего CSS, поскольку браузеры Webkit не будут читать ничего ниже этого.

* html * { color: expression( (function(who){ if(!who.MXPC){
 who.MXPC = '1';
 if(who.nodeName != 'A'){
  who.onmouseenter=function(){ who.className += ' hover'};
  who.onmouseleave=function(){ who.className = who.className.replace(' hover','')}; }
 (who==who.parentNode.firstChild) ? who.className += ' first-child' : '' ;
} } )(this) , 'auto') }
-1
ответ дан 26 October 2019 в 11:17
поделиться

Я получаю ошибку javascript (недопустимое значение свойства) в IE в строке ~ 852:

document.getElementById('panel-hlisting-all').style.backgroundColor = color;

, где цвет имеет значение "# ffff100".

Может быть, это причина вашей проблемы?

0
ответ дан 26 October 2019 в 11:17
поделиться

Ваш CSS выглядит действительным.

Попробуйте добавить '! Important' к вашему a: hover, а также попробуйте изменить другие стили в определении. У вас может быть какой-то другой стиль, перекрывающий этот конкретный стиль a: hover через каскад.

Firebug в FF может показать вам, что некоторые конфликтующие стили наследуются (хотя в IE6 вы, конечно, сами по себе), но вы должны убедиться, что вы не противоречат друг другу. a: hover отлично работает в IE6, так как вы и другие участники вопроса опасаетесь

Кроме того, ставьте точки с запятой и новые строки после ваших объявлений, вы, грязный язычник!

0
ответ дан 26 October 2019 в 11:17
поделиться

Просто подумайте об этом - почему бы не использовать для этого JQuery? достаточно всего НЕСКОЛЬКИХ строк кода.

Сначала загрузите JQuery с www.jquery.com . Затем вы должны правильно связать его со своим файлом в заголовке вашего HTML:

<script src="url_to_your_jquery_file_here"></script>

Затем добавьте еще одну часть Javascript под этим:

<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $("li a").hover(
          function () {
            $(this).css("color", "#3366a9");
          }, 
          function () {
            $(this).css("color","#838383");
          }
        );
    });
</script>
0
ответ дан 26 October 2019 в 11:17
поделиться