Another thing to keep in mind is z-index is scoped just like absolute positioning is scoped - that is no matter how high you set the z-index of an element, it will never appear in front of an element that has a higher z-index than a parent of the element your setting the z-index on. Consider the following.
<nav style="position: relative; z-index: 1;">
<div id="A" style="position: absolute; z-index: 100;">
<div id="B" style="position: relative; z-index: 2;"></div>
In the above, div "A" can never be in front of div "B" because, no matter how high it's z-index is set, the z-index of it's parent, nav, is lower than the z-index of div "B".