Ogni elemento che abbia position diverso da auto stabilisce un contesto di stacking (impilamento) separato.

Questo vuole dire che lo z-index ha senso SOLO tra elementi che sono figli dello stesso padre, altrimenti non vedrai nessun effetto.

Detto in altri termini:
<body>
<div id=a style=z-index:3></div>
<div id=b style=z-index:4></div>
<div id=c style=z-index:1></div>
</body>

avrà degli effetti visibili, mentre

<body>
<div>
<div id=a style=z-index:3></div>
</div>
<div>
<div id=b style=z-index:4></div>
</div>
<div>
<div id=c style=z-index:1></div>
</div>
</body>

non avrà nessun effetto perchè gli ementi a cui hai dato z-index non sono nello stesso contesto, ovvero non hanno lo stesso padre.

Quindi, verifica di stare dando z-index ad elementi che abbiano lo stesso padre e vedrai che a quel punto modificare lo z-index avrà effetto, e sperimentando un poco potrai trovare l'ordine di visualizzazione che più ti è congeniale.