Le fait que W3C définit un standard sans création d'implémentation est ce qui conduit à des interprétations différentes, quel que soit le navigateur qui a raison ou non.
La bonne façon de faire ce que vous voulez dans tous les navigateurs est quelque chose comme:
<div style="position:relative; z-index:1;"> OUTERFOO
<div style="position:relative; z-index:1;">OUTERBAR
<div style="position:absolute; z-index:1;">BAR</div>
</div>
<div style="position:absolute; z-index:2;">FOO</div>
</div>
ou
<div style="position:relative; z-index:1;"> OUTERFOO
<div style="position:relative; z-index:1;">OUTERBAR
<div style="position:absolute; z-index:1;">BAR</div>
<div style="position:absolute; z-index:2;">FOO</div>
</div>
</div>
Pas besoin de ziindexes avec des chiffres ridicules - qui mène à la confusion. Fondamentalement, lorsque vous utilisez z-index, vous devez positionner tous les éléments frères et l'élément parent, et vous devriez z-indexer tous les frères et sœurs par souci de clarté. Cela fait beaucoup plus de maux de tête.
La façon dont vous essayez de le faire dans votre question viole les règles de base de la superposition de la même manière que cela est le cas, par exemple:
<div><span></div></span>
Vous êtes à la recherche d'une solution qui utilise css pour briser les règles d'imbrication de la syntaxe html. Les exemples que je fournis accomplissent ce que vous voulez vraiment en obéissant à ces règles.
Oui IE8 est correctement rendu! – Stephan