Stefan Bach: position:absolute nicht immer relativ zum Elternelement?

Hi,

in SelfHtml steht folgendes:

Denn absolute verhält sich durchaus relativ, wie die inneren div-Elemente im obigen Beispiel zeigen: relativ nämlich zum Rand des Elternelements.
[http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#position]

Nun habe ich das Gefühl, dass diese Aussage so nicht ganz stimmt.
Ich habe ein paar <div>s, die mit absolute positioniert sind, momentan befinden sie sich direkt innerhalb von <body>.
So weit so gut.

Jetzt wollte ich das ganze in folgendes einschließen:

<div style="width: 900px; height: 100%; margin-left: auto; margin-right: auto">
...
</div>

Also die Breite die das ganze haben soll auf 900 Pixel setzen und es dann mittig ausrichten.

Das Resultat ist folgendes: In Opera und Mozilla hat sich gar nichts geändert, der IE hält sich an die 900px aber lässt das ganze links stehen.

Wenn ich jetzt aber
<div style="width: 900px; height: 100%; position: absolute; top: 200px; left: 100px">
...
</div>
daraus mache, dann funktioniert es in allen Browsern so wie es soll. Die eingeschlossenen <div>s werden relativ zu dem äußeren positioniert.

Nun wundere ich mich, ob das in SelfHtml falsch beschrieben steht oder ich hier nur einen Denkfehler habe.

Was ich im Endefekkt erreichen will ist jedenfalls, das die Seite eine max-width hat und zentriert angezeigt wird, wenn auf den Bildschrim mehr drauf passt. Ich kann das zwar auch über Frames lösen, aber das nimmt einem z.B. den Komfort auf jede Seite direkt verlinken zu können.

Jetzt ist aber jedenfalls erst mal Zeit ins Bett zu gehen...

Stefan

  1. hi

    Denn absolute verhält sich durchaus relativ, wie die inneren div-Elemente im obigen Beispiel zeigen: relativ nämlich zum Rand des Elternelements.
    [http://selfhtml.teamone.de/css/eigenschaften/positionierung.htm#position]

    Nun habe ich das Gefühl, dass diese Aussage so nicht ganz stimmt.

    in der tat, tut sie SO nicht. Relativ zum nächsten übergeordneten Element, das nicht position:statis [=default] hat.

    Grüße aus Bleckede

    Kai

  2. Aloha!

    Nun habe ich das Gefühl, dass diese Aussage so nicht ganz stimmt.

    Ja, in SelfHTML sind immer mal wieder sprachliche Unausgereiftheiten und ganz banale Fehler - Stefan Münz ist eben auch nur ein Mensch, wie ich gerade live feststellen durfte - und er hat für die Korrektur der Fehler derzeit etwas zu wenig Zeit.

    Ich habe ein paar <div>s, die mit absolute positioniert sind, momentan befinden sie sich direkt innerhalb von <body>.
    So weit so gut.

    Jetzt wollte ich das ganze in folgendes einschließen:

    <div style="width: 900px; height: 100%; margin-left: auto; margin-right: auto">
    ...
    </div>

    position:relative; left:0px; top:0px; macht aus dem normalen Layer einen, zu dem enthaltene, absolut positionierte Layer sich relativ ausrichten.

    - Sven Rautenberg

    1. Aloha!

      Nun habe ich das Gefühl, dass diese Aussage so nicht ganz stimmt.
      Ja, in SelfHTML sind immer mal wieder sprachliche Unausgereiftheiten und ganz banale Fehler - Stefan Münz ist eben auch nur ein Mensch

      Da bin ich aber doch schon mal sehr drüber beruhigt. :)

      <div style="width: 900px; height: 100%; margin-left: auto; margin-right: auto">
      ...
      </div>
      position:relative; left:0px; top:0px; macht aus dem normalen Layer einen, zu dem enthaltene, absolut positionierte Layer sich relativ ausrichten.

      Danke für den Tip(p). Soweit hat es schon mal funktioniert. Jetzt habe ich nur noch ein kleines Problemchen. Dafür schreib ich aber lieber einen neuen Beitrag und zwar erst morgen früh.

      Gute Nacht, jetzt aber wirklich.

      P.S. Vielen Dank auch an Kai für seine Antwort.