Placing absolute behind relative positioned element
Solution 1:
I'm not sure which one you want in front, but you just need to set position on both and set z-index on both. http://jsfiddle.net/8eLJz/2/
a {
color: black;
}
nav#mainNav {
position: relative;
}
nav#mainNav > img {
position: absolute;
width: 100px;
left: 0;
z-index: 5;
}
nav#mainNav > a > img {
width: 100%;
}
nav#mainNav > nav {
width: 100%;
position: relative;
z-index: 10;
}
nav#mainNav > nav > a {
display: block;
text-align: right;
background-color: yellow;
}
Solution 2:
You can put a negative z-index on the image, which will cause it to layer behind the other elements:
a {
color: black;
}
nav#mainNav {
position: relative;
}
nav#mainNav>img {
position: absolute;
width: 100px;
left: 0;
z-index: -1; /* <----------------------------------- HERE I AM! */
}
nav#mainNav>a>img {
width: 100%;
}
nav#mainNav>nav {
width: 100%;
}
nav#mainNav>nav>a {
display: block;
text-align: right;
background-color: yellow;
}
<nav id="mainNav">
<img src="http://www.colourbox.com/preview/7389458-682747-example-stamp.jpg" />
<nav> <a href="/">Some Text</a>
<a href="/">Some Text</a>
</nav>
</nav>
Solution 3:
CSS has a z-index property so on your nav#mainNav > img
selector just set z-index: -1;
.
Here is a working jsFiddle: http://jsfiddle.net/8eLJz/1/