As a result of CSS trickery like negative margins, occasionally I have some HTML that is rendered below HTML content that occurs later in the HTML document. Even though the original elements should technically be below the later elements, I’d like to display the above the later elements.
Is it possible to make an HTML element appear above another element without having to specify an absolute position? It doesn’t appear that z-index has any effect without an absolute position.
Yes: use
position:relative; z-index:10.z-indexhas no effect forposition:static(the default).Note that z-index is not a global layering system, but only differentiates ordering within each positioned parent. If you have:
…then
#a1will never render aboveb, because#bis layered above#a. You can see a demo of this at http://jsfiddle.net/DsTeK