У меня есть страница, использующая <ul>
списки для навигации (Javascript меняет стиль, чтобы отображать или нет при наведении курсора).
Это работает нормально для меня, за исключением IE6 и IE7, когда у меня есть Google Map на странице.
В этом случае раскрывающийся список просто не работает. Тем не менее, страница продолжает работать в FireFox 2.
Я провел небольшое исследование и обнаружил, что это может быть примером ошибки IE Select Box, но я не уверен, так как карта Google использует, а <div>
не an <iframe>
.
Кто-нибудь еще сталкивался с проблемой, похожей на эту, и если да, то есть ли у них какие-либо рекомендации по наилучшему способу преодоления этой проблемы?
Я не знаю, решит ли это вашу проблему, но вы можете попробовать это решение на ccsplay.co.uk, который решает проблему меню, появляющегося под выпадающими списками. Я не знаю, сработает ли это наверняка, но оно того стоит.
У меня нет немедленного ответа для вас, но инструменты, упомянутые в этом ответе (в частности, IE DOM Inspector), могут помочь.
Я исправил аналогичную проблему с выпадающими списками, которые не отображались во флэш-фильмах в IE6 / IE7 / IE8 с помощью этого jQuery :
$(function () {
$("#primary-nav").appendTo("#footer");
});
Где primary-nav
это ID
контейнерный элемент раскрывающегося списка и footer
является ID
последним элементом на странице. Затем я использовал абсолютное позиционирование, чтобы переместить выпадающие списки обратно на вершину, к которой они принадлежат.
Причина, по которой это работает, заключается в том, что IE уважает порядок источников больше, чем z-index
. Он все еще не мог отображаться поверх плагина Windows Media Player.
Я полагаю, что это может произойти из-за Active-X, который IE 6+ использует для анализа CSS.
Со временем мне пришлось адаптировать свою работу, чтобы включить некоторые хаки IE в мой CSS, чтобы он был совместим с несколькими браузерами.
Сначала я попытался бы создать меню без Javascript, используя чистый CSS и включая упомянутые мной хаки. Это, вероятно, решит вашу проблему. Вам на самом деле не нужен Javascript для изменения стилей при наведении курсора и тому подобное.
Если вы хотите узнать, что такое CSS-взлом: нажмите здесь
Если вы хотите посмотреть некоторые примеры CSS-меню: нажмите здесь
Надеюсь это поможет!
Согласно этой ветке Google Maps , вы правы - в код Google вставлен IFrame.
Вам нужно будет использовать решение, которое упомянул Дэн,
Вы можете попробовать это решение на ccsplay.co.uk, который решает проблему меню, появляющегося под раскрывающимися списками.
В качестве альтернативы см. Internet Explorer HACK / Исправление для поля выбора, отображаемого через DIV .
В основном решение заключается в том, чтобы с помощью JavaScript разместить ваше меню CSS в IFrame в IE6.
Альтернативное решение состоит в том, чтобы использовать JavaScript, чтобы скрыть карту Google, когда меню CSS закрыто, или заменить карту Google статической картой (может быть, даже статическую карту Google), когда меню CSS раскрыто.