IE 6 выбрать элементы управления (поле со списком) над меню - PullRequest
7 голосов
/ 16 февраля 2009

В IE 6 в верхней части меню отображается элемент управления select (combo box). Я проверил некоторые меню Javascript, mmmenu , но все попадают под выборочный контроль. Это невозможно исправить назначением Z-Index. Есть ли другое решение?

Ответы [ 4 ]

7 голосов
/ 16 февраля 2009

Это хорошо известная ошибка в IE6, когда мы пытаемся расположить элементы div поверх элементов управления select.

Существуют обходные пути с использованием прокладок iframe, но нет хорошего ответа. Ответ iframe shim состоит в том, чтобы поместить iframe под любым div, который вы пытаетесь поместить над select, с iframe того же размера. К сожалению, это огромная боль в заднице.

Я предлагаю использовать систему меню javascript, которая уже использует прокладки iframe, такие как Меню YUI (и я предполагаю, что jQuery).

7 голосов
/ 16 февраля 2009

Большинство основных библиотек javascript имеют легко реализуемые решения этой проблемы. Мы используем jQuery, а плагин bgiframe очень прост в использовании и решает проблему.

3 голосов
/ 16 февраля 2009

Даниэль определенно прав. Это ужасная проблема.

Однако может быть другое решение. Если вы используете многоуровневые меню, которые открываются и закрываются, можно написать код JavaScript, который буквально скрывает проблемные элементы SELECT при открытии всплывающего окна (стиль элемента должен иметь видимость скрытого). Затем, когда меню закроется, вы можете отобразить тот же самый элемент SELECT.

Тогда вам просто нужно написать код, который определяет, какие объекты SELECT мешают определенному меню перед его открытием. Это не тривиальный код, но его можно написать. Тогда я бы просто обернул весь кусок кода в условие, которое проверяет, находится ли пользователь в IE, так как нет необходимости запускать это в Firefox или Safari.

2 голосов
/ 16 февраля 2009

Проблема состоит в том, что SELECT являются оконными элементами в IE6, и их z-индекс выше всех других неоконных компонентов. Если вам абсолютно необходимо иметь что-то над комбоксом, вы можете поместить его в другой оконный компонент, такой как IFRAME, и установить z-индекс компонента выше, чем у выпадающего списка.

Должен признать, это не очень хорошее решение.

...