Without viewing the HTML, it is quite difficult to detect the problem.
Example
Here is a script describing the problem: http://jsfiddle.net/rZysU/
.a1 z-index is set to 1000, but it still does not appear. b1 is visible, although its z-index is only 1. (it even matches -1)
Generally
If you insert HTML elements, each nesting level creates its own z-index stack. If you set the z-index of an element inside a deeper node in the DOM tree, it may happen that although you set the z-index to a high value, it will still be under other elements that are in a higher level of the DOM hierarchy .
Example:
- div1
- div1a
- a (z-index = 100)
- b (z-index = 101)
- c (z-index = 102)
- div1b
- d (z-index = -1)
- e (z-index = 1)
d will still be drawn on top of a because div1b gets a higher z-index because it is specified after div1a and the HTML renderers draw one node after the other and define z-pointers this way if you don't provide it by CSS definition.
source share