<div>s mittig nebeneinander
Eddie
- css
Hallo allerseits!
Könnt Ihr mir sagen, was ich hier falsch mache?
Ich möchte 2 <div>s innerhalb eines anderen <div>s mittig anzeigen:
<div style="position:absolute; top:400px; left:400px; width:100%; vertical-align:middle;">
<div style="float:left; border:2px solid red;">
line1<br>
line2
</div>
<div style="float:left; border:2px solid red;">
mittig !!!
</div>
</div>
Müsste doch gehen, oder?
Eddie
hallo Ediie,
Ich möchte 2 <div>s innerhalb eines anderen <div>s mittig anzeigen
Prinzipiell sollte das möglich sein.
Aber:
<div style="position:absolute; top:400px; left:400px; width:100%; vertical-align:middle;">
Da gehts schon los. Das Ding soll von links bereits einen Abstabd von 400 Pixel haben. Dann _kann_ es nicht mehr 100 Prozent breit sein. Und was soll passieren, wenn ein Besucher deiner Seite das Fenster auf weniger als 400 Pixel Breite verkleinert? "vertical-align:middle" ist bei einer Breite von 100 Prozent auch völlig nutzlos.
<div style="float:left; border:2px solid red;">
"float" ist ja ganz nett, dürfte dir aber hier nichts nutzen. Dieses Div hat gar keine Breitenangabe, wie soll da "daneben" noch ein anders sichtbar werden, wenn doch schon das "übergeordnete" Div 400 Pixel Abstand zum linken Rand hat?
</div>
<div style="float:left; border:2px solid red;">
Aha, das dritte Div, das du neben das zweite quetschen möchtest. Auch hier hast du keine Angabe zu Position und zur Breite gemacht.
mittig !!!
Müsste doch gehen, oder?
Nö. Definitiv nicht so, wie du es versuchst ;-)
Es ist nicht klar, wozu du überhautpt ein "übergeordnetes" Div brauchst. Positioniere deine beiden Divs, auf die es dir offensichtlich ankommt, jeweils absolut, das _könnte_ dein Problem lösen - abhängig davon, was sie nun für Inhalte bekommen sollen.
Grüße aus Berlin
Christoph S.
Hi Christoph,
war nur ein Beispiel, zugegebenermaßen ein schlechtes. Sorry!
Das Problem ist, dass meine nebeneinander angeordneten divs keine feste Position haben können, da ihre Inhalte (und damit ihre Breite) dynamisch erzeugt werden. (Ich weiß, da bekomme ich Probleme mit Opera ...)
Und es sind auch nicht nur 2 divs, sondern minimal 5, die ich der Einfachheit halber gerne mit einem Haupt-Div positionieren würde.
Ich habe es jetzt mal so versucht, geht aber auch nicht:
Mit einer Tabelle wüsste ich schon, was zu tun wäre, aber von Tabellen versuche ich mich gerade zu trennen - was schwer fällt :-(
Eddie
hallo,
Das Problem ist, dass meine nebeneinander angeordneten divs keine feste Position haben können, da ihre Inhalte (und damit ihre Breite) dynamisch erzeugt werden.
Was ist daran so problematisch? Selbstverständlich können auch dynamisch erzeugte Div's positioniert werden
(Ich weiß, da bekomme ich Probleme mit Opera ...)
Wirklich?
Und es sind auch nicht nur 2 divs, sondern minimal 5, die ich der Einfachheit halber gerne mit einem Haupt-Div positionieren würde.
Boah!!!!!! Da haste uns ja gewissermaßen belogen, du Schlimmer, du
<div style="position:absolute; top:120px; left:0px; width:100%; vertical-align:middle;">
ok, jetzt sind zwar die 400 Pixel Rand weg, aber es ist immer noch das bei 100 Prozent Breite wirkungslose "vertical-align:middle" drin
<div style="float:left; border:2px solid red; width:50px;">
_Jetzt_ wird die Geschichte mit "fload" allerdings interessant, das solltest du eventuell nochmal überdenken. Positionierung ist immer noch nicht dabei ...
Mit einer Tabelle wüsste ich schon, was zu tun wäre, aber von Tabellen versuche ich mich gerade zu trennen - was schwer fällt :-(
Warum willst du dich denn von Tabellen trennen? Es kommt schließlich darauf an, was deine Seite, wenn sie denn fertig ist, einmal zeigen soll, und diesem Ziel entsprechend wählst du die technischen Layout-Instrumente. Tabellen können nach wie vor außerordentlich nützlich sein und werden wohl kaum jemals aus der "HTML-Welt" verschwinden.
Dein Problem scheint eher zu sein, daß du dir erst klar sein mußt, welche Inhalte du transportieren möchtest, und dann das dafür benötigte Instrumentarium auswählen solltest. Nicht umgekehrt.
Grüße aus Berlin
Christoph S.