Use 24-bit PNG with alpha transparency .. then there should be no meaning that they overlap. You can place them in a row on the left with a negative margin on the left (useful if tabs are not set), or, as you said, you could position them absolutely.
: IE6 - . , , 24- ie6pngfix.
<ul>
<li><a href="">link1</a></li>
<li><a href="">link1</a></li>
<li class="active"><a href="">link2</a></li>
</ul>
ul li {
display: block;
float: left;
margin-left: -20px;
background: url(path/to/image.png) no-repeat;
}
ul li:hover { /* will not work in ie6 - either change the background to the anchor, or add a slice of js */
background-position: -200px 0; /* i'm using sprites in this example */
}
ul li:first-child {
margin-left: 0;
}
ul li.active {
position: relative; /* Mark reminded me I needed to set a position other than static */
z-index: 100;
}