Ik vraag me wel af wat je met deze constructie wilt en of 't niet makkelijker kan.
De volgende code werkt in alle browsers:
HTML:
<span style="position: relative; display: inline-block; width: 4em; height: 1.2em; background: red;">
<span style="position: absolute;">tekst 1</span>
</span>
<span style="position: relative; display: inline-block; width: 4em; height: 1.2em; background: blue;">
<span style="position: absolute;">tekst 2</span>
</span>
(Het achtergrondkleurtje is alleen even om 't zichtbaar te maken.)
'n Span is 'n inline-element, dus begint normaal genomen niet op 'n nieuwe regel, komt netjes naast 'n andere span te staan. Hij wordt normaal genomen even breed als nodig is om de inhoud (hier 'tekst 1' en 'tekst 2') weer te geven.
Maar.
De binnenste span heeft 'n absolute positie. Dat betekent dat hij niet meer meetelt (hij is uit de normale 'flow' van de pagina genomen, zoals dat heet). Dat betekent o.a. dat hij zelf wel breed genoeg wordt om 'tekst 1' weer te kunnen geven, maar de buitenste span. niet: hij geeft z'n breedte niet meer door aan z'n ouder.
Omdat de binnenste span niet meer meetelt voor andere elementen, heeft de buitenste span geen breedte. Oeps. Nu wordt de 'tekst 2' er dus gewoon overheen gezet, want de eerste span heeft geen breedte.
De truc is dus om iets te verzinnen om de buitenste 2 spans zelf breedte te geven, los van die asociale absolute spans binnenin, want die trekken zich nergens iets van aan.
Als ik 'n breedte aan de buitenste spans kan geven, ben ik er. Maar 'n inline-element als 'n span kun je geen breedte geven. Daarom gebruik ik display: inline-block. Nu blijft het 'n inline-element (de tweede span komt niet op 'n nieuwe regel te staan), maar ik kan er wel breedte en hoogte aan geven.
En omdat de buitenste spans nu zelf, helemaal los van de binnenste span, breedte hebben, staan ze naast elkaar.
Voor de breedte en hoogte gebruik ik em, zodat deze meegroeien met de lettergrootte. Anders knalt het eruit bij 'n grotere lettergrootte, maar dit kun je veranderen.
De binnenste span heeft 'n absolute positie. Als je 'n inline-element 'n absolute positie geeft, verandert het in 'n blok-element (tja, ik zei dat je 'n wat ingewikkelde constructie had gekozen

). 'n Blok-element krijgt normaal genomen evenveel breedte als z'n ouder, hier de buitenste span. Die had eerst geen breedte, vandaar dat de getallen op de volgende regel kwamen.
Nu heeft die buitenste span genoeg ruimte om 'tekst 1' en 'tekst 2' op dezelfde regel te houden.