[TYPO3-german] [ot: css] ebenen übereinander: position:relative

JoH info at cybercraft.de
Wed Jan 18 11:06:47 CET 2006


> ich habe in einer zentrierenden Tabelle mehrere Ebenen, die über
> einander liegen sollen. Dies erreiche ich mit:
>
> style="position:relative; top:0px; height: 50px"
>   für Layer1,
>
> style="position:relative; top:-50px; height: 50px"
>   für Layer2,
>
> style="position:relative; top:-100px; height: 50px"
>   für Layer3.
>
> Anschließend kommen weitere Tabellen und Ebenen.

Warum ausgrechnet Tabellen? Ginge doch sicher auch mit DIV ...

> Unter Firefox/Mozilla werden folgende Elemente bei der Höhe 50px
> ausgegeben, IE summiert auf 150px.

Weil er die Teile bei position:relative quasi erst aufbaut und dann
verschiebt.
Wenn Du mit positiven Werten arbeiten würdest, würden nachfolgende Elemente
die vorhergehenden überlagern.
So entstehen Lücken. Firefox macht das teilweise auch.

> Ist dies ein weiteres Beispiel für das "Boxing model" mit
> unterschiedlicher Interpretation der verschiedenen Browser?

Nein. Aber unschön ist es dennoch.

> Wie kann ich den Code für beide Browser gestalten?
>
> Mit "position:absolute" kann ich nicht arbeiten, weil sonst die
> Zentrierung durch die Tabelle wegfällt. Mir bleibt nur
> "position:relative", oder?

Nein. Denn auch position:absolute muß sich nicht immer auf den Browser
beziehen. Wenn Du mit verschachtelten Elementen arbeitetst, wird immer das
nächstgelegene Elternelement verwendet, das nicht position:static hat.
Weil position:static der default ist, der bei keinerlei Positions-Angaben
verwendet wird, hat position:absolute zunächst mal den Effekt, sich immer am
Fenster selbst auszurichten.
Nicht so, wenn Du einem Elternelement position:relative zuweist.

Beispiel:

<body style="text-align:center;">
    <div style="position:relative; margin-left:auto; margin-right:auto;
width:790px; height:450px; background:#fc9;">
        <div style="position:absolute; top:0; left:0; width:100px;
height:100px; background:#f00;">Testbox</div>
        <div style="position:absolute; top:0; right:0; width:100px;
height:100px; background:#f00;">Testbox</div>
        <div style="position:absolute; bottom:0; left:0; width:100px;
height:100px; background:#f00;">Testbox</div>
        <div style="position:absolute; bottom:0; right:0; width:100px;
height:100px; background:#f00;">Testbox</div>
    </div>
</body>

Ergibt ein zentriertes DIV Element mit apricotfarbenem Hintergrund.
Darin findest Du an jeder Ecke ein rotes Quadrat.

Spiel mal damit rum

Joey

-- 
Wenn man keine Ahnung hat: Einfach mal Fresse halten!
(If you have no clues: simply shut your knob sometimes!)
Dieter Nuhr, German comedian
http://www.cybercraft.de





More information about the TYPO3-german mailing list