Le merdier du “stacking context” en CSS (aka “pourquoi mon z-index marche pas bordel de merde” ?) | Sam & Max: Python, Django, Git et du cul

Oh, mais c’est bien plus subtil que ça…

– z-index fonctionne partout, du moment que l’élément à qui on l’applique a un "position" différent du défaut (donc de static ; et a donc relative, absolute ou fixed).

– z-index d’un élément enfant ainsi positionné (avec "position") fonctionne par rapport à tous les autres enfants (positionnés ou non).
Ainsi, deux <span> dans un <p> seront l’un sous l’autre ou l’autre sous l’un en fonction des z-index s’ils sont positionnés, et en fonction de l’ordre dans le code source s’ils ne sont pas positionnés (le z-index ne marche alors pas).

– z-index peut fonctionner pour placer un enfant sous le parent, à condition que le parent n’ai pas de "position" différent de "static".
Si les parents n’ont pas de position, il est même possible de placer un enfant d’un parent A sous un enfant d’un parent B.

Oh, et aucun élément n’a un position autre que le "static" par défaut… Sauf <html>, qui est en absolute. Ou <body>, je ne sais plus.