Ich hatte auch mal so ein ähnliches Problem, wobei ich das dann quick-and-dirty so gelöst hatte, dass ich innerhalb des divs noch ein div positioniert habe, mit minimalster Breite (1px oder 0px). Diesem div habe ich dann overflow:hidden gegeben und darin alle Elemente platziert, in deinem Fall die spans.
Zusätzliches Vorteil der Lösung ist, dass du dem "Container-div" auch noch eine ID/Klasse geben kannst und die Elemente darin noch etwas mehr kapselst, wobei das Geschmackssache ist.
So meine ich das ganze:
Code:
<div style="width: 900px; position: relative; margin: auto">
<div style="width: 1px; position: absolute; left: 0; top: 0; overflow: hidden;">
<span style="position: absolute; width: 200px; left: -150px; z-index: 3"></span>
</div>
</div>
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)