You don't necessarily need to give it absolute position.. You could exploit the default overflow behaviour of block elements..
For example, you could achieve the desired result by using a code like this:
MARKUP:
<div id="adbox">
<div class="content">
<a href="#">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nibh odio, sollicitudin vel sodales vel, dignissim sed lacus. Praesent sed erat sed turpis gravida congue. Nulla facilisi. Nunc eros eros, auctor et auctor in, tempor quis magna. Curabitur in justo libero.</a>
</div>
</div>
<div id="main-content">
<p>Curabitur iaculis, dolor eu interdum fermentum, mi mauris vulputate est, tempus rhoncus leo dolor nec orci. Duis a ante augue. Suspendisse potenti. Proin luctus ultrices ligula, ac luctus lorem pellentesque non. Curabitur sit amet eros dui, quis laoreet felis.</p>
</div>
STYLE:
#adbox {
width: 400px;
height: 0px;
position: relative;
z-index: 0;
margin: 0 auto;
}
#adbox .content {
background: #EEE;
}
#main-content {
width:300px;
margin: 0 auto;
position: relative;
z-index: 1;
background: #CCC;
}
#main-content p {
padding: 0 5px;
}
IE warning:
in IE <= 6 the height
property is interpreted as any other browser does with min-height
: you might want to add some specific style to fix this issue.
Or else, you could absolutely position the ad and go this way: http://jsfiddle.net/bssxg/10/
#adbox { width: 400px; position: absolute; z-index: 0; top: 0; left: 50%; margin-left: -200px; }
(the left negative margin being equal to half the width of the ad box)