Подтвердить что ты не робот

Проблема с CSS: a: зависание не работает с IE (требуется css Ninja)

Почему IE не меняет цвет фона на моем сайте для вкладок a: hover, но делает это в Firefox/Chrome/Safari правильно?

Что я могу сделать, чтобы он работал в IE 6 +?

HTML

<ul class="tabbernav">
<li class="tabberactive"><a title="All" href="javascript:void(null);">All</a></li>
<li class=""><a>Tab1<span class="tabTotal"> (0)</span></a></li>
<li class=""><a>Tab2<span class="tabTotal"> (2)</span></a></li>
<li class=""><a>Tab3<span class="tabTotal"> (1)</span></a></li>
</ul>

CSS

ul.tabbernav li a:hover {background:#fdfdfd; border: 1px solid #555; border-bottom: none; color:#3366a9; cursor: pointer}
4b9b3361

Ответ 1

Первое, что я хотел бы сделать, это проверить, правильно ли выбран порядок селекторов psuedo.

Должно быть -

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-hover, которую я помню, связана с элементами без ссылок, поэтому я не думаю, что это ваша проблема. http://www.bernzilla.com/item.php?id=762 - на всякий случай.

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


GAH- Это было тяжело!

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

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

Ответ 2

Вы должны поместить атрибут href="" в тег <a>.

Это будет нормально работать.

Также используйте тег <!doctype html> в верхней части страницы. Теперь все будет хорошо.

Ответ 4

Добавьте тег удара в <head> для исправления.

для IE9

<meta http-equiv="X-UA-Compatible" content="IE=9">

для IE10

<meta http-equiv="X-UA-Compatible" content="IE=10">

Ответ 5

Я думаю, что IE 7 исправил проблему наведения на элементах, отличных от <a>, но не протестировал.

Чтобы восполнить IE 6 отсутствие поддержки: селектора hover, вам просто нужно использовать javascript для получения того же эффекта. Установите событие onMouseOver, которое применяет класс, который вы хотите.: D

Ответ 6

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

Попробуйте добавить "! important" к вашему: hover, а также попробовать изменить другие стили в определении. Возможно, у вас есть другой стиль, переопределяющий этот стиль: стиль наведения с помощью каскада.

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

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

Ответ 7

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

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

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

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

Ответ 8

Просто подумал об этом - почему бы не использовать JQuery для этого? с помощью всего лишь FEW строк кода вы сделаете это.

Сначала загрузите 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>

Ответ 9

Попробуйте добавить:

display: block;
position: relative;

на ваш css a.

Ответ 10

Я пробовал каждое найденное мной решение. В моем случае ошибка была определена Google Translator. Я удалил его в IE и Opera (где он вызывает другие ошибки), и все работает отлично.

Ответ 11

Используйте <!DOCTYPE html> в верхней части страницы. Это устранит проблему и другие проблемы, которые могут возникнуть.

Ответ 12

Элемент hover в режиме quirk в IE не работает. Альтернатива устанавливается через script -event (без jquery) элемента html:

<a onmouseover="this.style.textDecoration='underline'" onmouseout="this.style.textDecoration='none'" >  My link</a>

Ответ 13

вы можете добавить следующую строку вверху вашего html файла, она работает для меня в 9 и выше:

       <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Ответ 14

вы можете добавить следующую строку в верхнюю часть своего html файла, она работает для меня, например, 9:

       <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

Ответ 15

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

Просто поместите его в END вашего 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') }