<script>
if (window.internals)
    internals.settings.setSimpleLineLayoutDebugBordersEnabled(true);
</script>
<div style="position:relative">
<div style="position:absolute; border:1px solid blue; width:50px; height:200px"></div>
<div style="position:absolute; left:52px">
    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
    consilia non sentis, constrictam iam horum omnium scientia teneri
    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
    ignorare arbitraris?  O tempora, o mores!
</div>
</div>
<div style="position:relative; top:202px">
<div style="position:absolute; border:1px solid blue; right:0px; width:50px; height:200px"></div>
<div style="position:absolute; right:52px">
    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
    consilia non sentis, constrictam iam horum omnium scientia teneri
    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
    ignorare arbitraris?  O tempora, o mores!
</div>
</div>
<div style="position:relative; top:404px">
<div style="position:absolute; border:1px solid blue; width:50px; height:200px"></div>
<div style="position:absolute; border:1px solid blue; right:0px; width:50px; height:200px"></div>
<div style="position:absolute; left:52px; right:52px">
    Quo usque tandem abutere, Catilina, patientia nostra?  quam diu etiam
    furor iste tuus nos eludet?  quem ad finem sese effrenata iactabit
    audacia?  Nihilne te nocturnum praesidium Palati, nihil urbis vigiliae,
    nihil timor populi, nihil concursus bonorum omnium, nihil hic munitissimus
    habendi senatus locus, nihil horum ora voltusque moverunt?  Patere tua
    consilia non sentis, constrictam iam horum omnium scientia teneri
    coniurationem tuam non vides?  Quid proxima, quid superiore nocte egeris,
    ubi fueris, quos convocaveris, quid consilii ceperis, quem nostrum
    ignorare arbitraris?  O tempora, o mores!
</div>
</div>
