In order for CSS z-index to work properly, the element you are applying the property to can only be “position:absolute” or “position:relative”. Though Firefox seems to ignore with a wink to the developer and assign z-indexes as intended, this is a common issue especially with older versions of Internet Explorer, IE 9 & IE 10 and Chrome.
I found in the past that z-index is pretty squirrelly, though I’ve always found a work around to get it to work, there always seems to be a browser that won’t show it like the others. Some developers can mount on their high horse and explain the reasons why, but most will probably admit they’ve had issues with “z-index” and objects not showing up in the browser as reliable as “layers” in Photoshop always does…