IE 6 выбрать элементы управления (поле со списком) над меню
В IE 6 выберите элемент управления (поле со списком) отображается в верхней части меню. Я проверил некоторые меню Javascript, mmmenu, но все они попадают под выборочный контроль. Это невозможно исправить назначением Z-Index. Есть ли другое решение?
4 ответа
Это хорошо известная ошибка в IE6, когда мы пытаемся расположить элементы div поверх элементов управления select.
Существуют обходные пути с использованием прокладок iframe, но нет хорошего ответа. Ответ iframe shim состоит в том, чтобы поместить iframe под любым div, который вы пытаетесь поместить над select, с iframe того же размера. К сожалению, это огромная боль в заднице.
Я предлагаю использовать систему меню javascript, которая уже использует прокладки iframe, такие как меню YUI (и я предполагаю, что jQuery).
Большинство основных библиотек javascript имеют легко реализуемые решения этой проблемы. Мы используем jQuery, а плагин bgiframe очень прост в использовании и решает проблему.
Даниэль определенно прав. Это ужасная проблема.
Однако может быть другое решение. Если вы используете многоуровневые меню, которые открываются и закрываются, можно написать код JavaScript, который буквально скрывает проблемные элементы SELECT при открытии всплывающего окна (стиль элемента должен иметь видимость скрытого). Затем, когда меню закроется, вы можете отобразить тот же элемент управления SELECT.
Тогда вам просто нужно написать код, который определяет, какие объекты SELECT мешают определенному меню, прежде чем оно откроется. Это не тривиальный код, но его можно написать. Тогда я бы просто обернул весь кусок кода в условие, которое проверяет, находится ли пользователь в IE, так как нет необходимости запускать это в Firefox или Safari.
Проблема состоит в том, что SELECT являются оконными элементами в IE6, и их z-индекс выше всех других неоконных компонентов. Если вам абсолютно необходимо иметь что-то над комбоксом, вы можете поместить его в другой оконный компонент, такой как IFRAME, и установить z-индекс компонента выше, чем у выпадающего списка.
Я должен признать, что это не очень хорошее решение.