проблема при наведении на элементы без ссылки в IE - PullRequest
3 голосов
/ 04 мая 2010

Есть ли способ использовать атрибут "hover" для всех элементов HTML вместо просто '' в IE?

например, li: hover. это не работает в IE6. (я не знаю о других версиях IE).

Отредактировано: Я просто хочу сделать это с помощью CSS без JavaScript. это простое меню.

Ответы [ 4 ]

4 голосов
/ 04 мая 2010

Нет, IE6 неправильно реализовал псевдокласс: hover для всех элементов. Поддерживает его только для якорей.

3 голосов
/ 04 мая 2010

Я не думаю, что в любом случае вы можете сделать это без JavaScript в IE 6.

Если это одноуровневое меню, вы можете настроить стиль так, чтобы ссылки отображались в виде display: block внутри li, чтобы вы могли выполнять наведение на них, и, если необходимо, помещать интервалы внутри ссылок для дополнительной гибкость стиля, но лично мне никогда не удавалось расширить это на многоуровневые меню.

Стратегия постепенной деградации может быть вашим лучшим выбором там.

2 голосов
/ 04 мая 2010

Используйте onmouseover / onmouseout с javascript.

Когда вы наводите курсор мыши на элемент, вы просто показываете скрытый div с содержимым вашего курсора.

Когда вы наведите указатель мыши на элемент, вы затем скроете div с вашим содержимым.

Jquery делает это проще, если вы не хотите выполнять всю работу по ногам

<span id="hoverSpan" class="hoverelement" hoverdata="this is my hoverdata">HoverSpan</span>
<a href="#" id="hoverAnchor class="hoverelement" hoverdata="this is my hover data">HoverAnchor</a>
<div id="hoverdiv" style="display:none"></div>

<script language="javascript">
  $(document).ready(function () {
     $(".hoverelement").each( function () {
       var myelement = $(this);
       myelement.mouseover( function (e) {
         var myhovertext = myelement.attr("hoverdata");
         $("#hoverdiv").html(myhovertext).show();
       });
       myelement.mouseout( function (e) {
         $("#hoverdiv").html(myhovertext).hide();
       });
     });
  });
</script>

Уже поздно, и я не проверял это, но идея есть. По сути, вы бы сделали наведение для любого элемента с классом "hoverelement"

0 голосов
/ 04 мая 2010

попробуй jquery ... я точно не знаю, но это может работать в IE6 ....

...