jsfiddle, связанный в комментариях к вопросу, уже имеет правильный ответ, реализованный для поддержания текущей древовидной структуры документа: контейнер должен быть принудительно переведен в нормальный поток с помощью 'position: static'.В противном случае IE предполагает, что все содержащиеся позиционированные элементы основаны на контексте z-индекса контейнера (и, в свою очередь, их z-индексирование действует только относительно контейнера и дочерних элементов контейнера), по сути, как если бы контейнер контейнера не находился в нормальномпоток, даже если контейнер не был явно расположен.
Вот jsfiddle вопроса без position: static
, прикрепленного к контейнеру.
Вотjsfiddle с прикрепленным position: static
, как указано в комментариях.
Первый разрыв в режиме IE7 в IE9 (отлично работает в chrome), второй работает в режиме IE7 в IE9 (и работает вchrome).
Если опция 'position: static' не является опцией, вам придется переместить div вне контейнера, чтобы он как минимум находился в среднем div, как показано в другом ответе.
Это не интуитивно понятно, поскольку контекст z-index для IE основан на степени, в которой различные элементы связаны друг с другом в контексте с их fl.ow / нормальный поток, а не структура документа.