Holger Rode: position absolute und td als containing block

Hallo zusammen,

ich habe eine Frage zum umschließenden Block bei absoluter Positionierung. Ich moechte ein <pre>-Element in einer Tabellenzelle gern aus dem Fluss rausnehmen, damit es die Breite nicht beeinflusst, sondern die Zelle ueberlagert. Da laut selfhtml ein absolut positioniertes Element das naechste positionierte als umschliessenden Block verwendet, habe ich die Tabellenzellen relativ positioniert.

Bsp.:
<html>
<head>
<style>
td { position:relative; }
td pre { position:absolute; top:0px; left:0px }
</style>
</head>
<body>
<h3>Eine Kopfzeile</h3>
<table>
<tr>
     <td>normale Zelle</td>
     <td><pre>viel unschoener Text ohne Umbruch und so</pre></td>
</tr>
</table>
</body>

Leider funktioniert das in meinem Firefox hier nicht, er nimmt trotzdem den body als containing block. Ist das ein Browserbug, oder hab ich was falsch verstanden?

Achja, ich bin mir bewusst wie das aussehen wuerde, letztendlich verwenden will ich es um css popups ala Eric Meyer in die Tabelle einzubauen.

Vielen Dank im Vorraus fuer hilfreiche Antworten,
Holger

  1. Hallo Holger,

    ich habe eine Frage zum umschließenden Block bei absoluter Positionierung. Ich moechte ein <pre>-Element in einer Tabellenzelle gern aus dem Fluss rausnehmen, damit es die Breite nicht beeinflusst, sondern die Zelle ueberlagert. Da laut selfhtml ein absolut positioniertes Element das naechste positionierte als umschliessenden Block verwendet, habe ich die Tabellenzellen relativ positioniert.

    Du musst mit zwei Blockelementen innerhalb deiner Tabellenzelle arbeiten. Das äußere positionierst du relativ, das innere kannst du dann bezogen auf das äußere absolut positionieren.

    http://forum.de.selfhtml.org/archiv/2005/3/t103751/#m639236

    Gruß Gernot

    1. Hallo Gernot,

      vielen Dank! Jetzt klappt es zumindest in meiner Testseite so, wie es soll, muss da wohl noch ein anderes Problem drin haben. Aber das muss ich jetzt erstmal isolieren... :)

      Eine Frage hab ich trotzdem noch. Ich finde in dem Abschnitt 10.1 Definition of "containing block" aus
      http://www.w3.org/TR/CSS21/visudet.html#containing-block-details
      keinen Grund warum es nicht klappt, wenn ich die td's relativ positioniere, statt ein weiteres Block-Level-Element als Elternelement einzufuegen. Darf man table-cells nicht relativ positionieren?

      Gruss,
      Holger

      1. hi,

        Eine Frage hab ich trotzdem noch. Ich finde in dem Abschnitt 10.1 Definition of "containing block" aus
        http://www.w3.org/TR/CSS21/visudet.html#containing-block-details

        bitte berücksichtige </faq/#Q-19>, danke.

        keinen Grund warum es nicht klappt, wenn ich die td's relativ positioniere, statt ein weiteres Block-Level-Element als Elternelement einzufuegen. Darf man table-cells nicht relativ positionieren?

        http://www.w3.org/TR/CSS21/visuren.html#choose-position
        "The effect of 'position:relative' on table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, and table-caption elements is undefined."

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hi,

        Eine Frage hab ich trotzdem noch. Ich finde in dem Abschnitt 10.1 Definition of "containing block" aus
        http://www.w3.org/TR/CSS21/visudet.html#containing-block-details
        keinen Grund warum es nicht klappt, wenn ich die td's relativ positioniere, statt ein weiteres Block-Level-Element als Elternelement einzufuegen. Darf man table-cells nicht relativ positionieren?

        Du hast Dir auch die Falsche Stelle herausgesucht.
        http://www.w3.org/TR/CSS21/visuren.html#positioning-scheme:
        "The effect of 'position:relative' on table-row-group, table-header-group, table-footer-group, table-row, table-column-group, table-column, table-cell, and table-caption elements is undefined."

        Und dies macht auch Sinn, denn was würde aus dem Gitter einer Tabelle, wenn die Zellen wild positioniert werden könnten. Daß position:relative ohne Positionsangaben das Element nicht verschiebt, ändert nichts am Prinzip.

        freundliche Grüße
        Ingo

        1. Schoenen Dank nochmal, das hat mir prima weitergeholfen!
          @wahsaga: k, werd meine URL's in Zukunft verlinken