У меня была настоящая боль с этой проблемой, для которой этот конкретный обходной путь не был актуален. Это немного сложно объяснить, поэтому я попробую использовать код:
<div id="first" style="z-index: 2">In between</div>
<div id="second" style="z-index: 1">In the back
<div id="third" style="z-index: 3">Foreground</div></div>
Проблема в том, что установка более высокого значения z-индекса родителя переместит его на передний план, а не обратно туда, где он должен быть. Я наткнулся на решение совершенно случайно: я сделал копию элемента переднего плана (id = третий) за пределами его родителя.
<div id="first" style="z-index: 2">In between</div>
<div id="third" style="z-index: 3; visibility:hidden">Foreground</div>
<div id="second" style="z-index: 1">In the back
<div id="third" style="z-index: 3">Foreground</div></div>
Стоит отметить, что в моем исходном коде элементы не имеют идентификаторов, поэтому я не страдаю от того, что 2 элемента совместно используют один и аннулируют мой HTML.
Я думаю, что безопасно классифицировать эту странность как еще одну ошибку, которая может помочь с оригиналом, но это работает, по крайней мере, для меня. Надеюсь, кто-нибудь найдет это полезным!