position absolute und td als containing block
Holger Rode
- css
1 Gernot Back0 Holger Rode0 wahsaga0 Ingo Turski
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
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
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
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
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
Schoenen Dank nochmal, das hat mir prima weitergeholfen!
@wahsaga: k, werd meine URL's in Zukunft verlinken