2010-08-21 4 views
6

Наличие странной проблемы в IE7. В ряде случаев у меня есть DIV, у которого есть позиция: абсолютная на нем (ошибочное раскрывающееся меню), когда есть что-то позади, которое имеет позицию: относительный относительный позиционный элемент будет отображаться через другой div.позиция: относительная появляющаяся над положением: абсолютное

Relativly расположен элемент не имеет множество Z-индекс, в то время как абсолютно позиционирован элемент (тот, который я хочу на вершине) имеет Z-индекс 1000.

http://skitch.com/louiswalch/dub5h/microsoft-windows-vista

+1

Возможный дубликат [IE z-index relative/absolute bug in list] (http://stackoverflow.com/questions/798482/ie-z-index-relative-absolute-bug-in-list) –

ответ

22

Я подозреваю, что вы» вы уже пробовали, но установите z-index на ваш относительно позиционированный элемент, который ниже вашего абсолютно позиционированного элемента z-index в качестве первого теста.

Если это не сработает, вам необходимо убедиться, что оба элемента находятся в одном и том же stacking context. В IE всякий раз, когда вы применяете правило CSS position к элементу, он генерирует новый контекст стекирования внутри этого элемента. Это означает, что z-index будет правильно соблюдаться только в дочерних и дочерних элементах этого элемента в других контекстах стекирования с нижние индексы z могут по-прежнему складываться выше.

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

+0

Ahh spot на, вот в чем проблема. Проблема в том, что я не уверен, что могу поместить их в один и тот же индекс стекирования. Это происходит в другом месте на сайте с более сложной компоновкой, а элемент с относительным позиционированием находится на совершенно другом уровне DOM. Я попытался дать элемент, который появляется через индекс z ниже, чем элемент выше него, и он все еще показывает. что означает "или применять z-index к двум элементам, которые генерируют свои отдельные контексты стекирования". –

+7

Я имею в виду, что вам нужно найти 2 родительских элемента с набором 'position' (они создают 2 отдельных контекста стекирования) и устанавливают на них' z-index'. Например, если ваша кнопка вложена в контейнер с именем '# content', а раскрывающийся список находится в' # header', вы можете установить '#content {z-index: 1} и' #header {z-index: 2} ' , При условии, что '# header' и' # content' находятся в одном контексте стекирования, это устранит вашу проблему. – Pat

Смежные вопросы