Лучший способ исправить выпадающий список CSS / JS в IE7, когда страница содержит Google Map

У меня есть страница, использующая <ul>списки для навигации (Javascript меняет стиль, чтобы отображать или нет при наведении курсора).

Это работает нормально для меня, за исключением IE6 и IE7, когда у меня есть Google Map на странице.

В этом случае раскрывающийся список просто не работает. Тем не менее, страница продолжает работать в FireFox 2.

Я провел небольшое исследование и обнаружил, что это может быть примером ошибки IE Select Box, но я не уверен, так как карта Google использует, а <div>не an <iframe>.

Кто-нибудь еще сталкивался с проблемой, похожей на эту, и если да, то есть ли у них какие-либо рекомендации по наилучшему способу преодоления этой проблемы?

21.08.2008 00:24:15
5 ОТВЕТОВ
РЕШЕНИЕ

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

2
21.08.2008 01:41:16

У меня нет немедленного ответа для вас, но инструменты, упомянутые в этом ответе (в частности, IE DOM Inspector), могут помочь.

0
23.05.2017 10:32:51

Я исправил аналогичную проблему с выпадающими списками, которые не отображались во флэш-фильмах в IE6 / IE7 / IE8 с помощью этого jQuery :

$(function () {
  $("#primary-nav").appendTo("#footer");
});

Где primary-navэто IDконтейнерный элемент раскрывающегося списка и footerявляется IDпоследним элементом на странице. Затем я использовал абсолютное позиционирование, чтобы переместить выпадающие списки обратно на вершину, к которой они принадлежат.

Причина, по которой это работает, заключается в том, что IE уважает порядок источников больше, чем z-index. Он все еще не мог отображаться поверх плагина Windows Media Player.

2
21.08.2008 03:13:39

Я полагаю, что это может произойти из-за Active-X, который IE 6+ использует для анализа CSS.

Со временем мне пришлось адаптировать свою работу, чтобы включить некоторые хаки IE в мой CSS, чтобы он был совместим с несколькими браузерами.

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

Если вы хотите узнать, что такое CSS-взлом: нажмите здесь

Если вы хотите посмотреть некоторые примеры CSS-меню: нажмите здесь

Надеюсь это поможет!

2
1.10.2008 12:15:13

Согласно этой ветке Google Maps , вы правы - в код Google вставлен IFrame.

Вам нужно будет использовать решение, которое упомянул Дэн,

Вы можете попробовать это решение на ccsplay.co.uk, который решает проблему меню, появляющегося под раскрывающимися списками.

В качестве альтернативы см. Internet Explorer HACK / Исправление для поля выбора, отображаемого через DIV .

В основном решение заключается в том, чтобы с помощью JavaScript разместить ваше меню CSS в IFrame в IE6.

Альтернативное решение состоит в том, чтобы использовать JavaScript, чтобы скрыть карту Google, когда меню CSS закрыто, или заменить карту Google статической картой (может быть, даже статическую карту Google), когда меню CSS раскрыто.

2
1.10.2008 20:03:16