Breite eines absolut positionierten divs
Encoder
- css
Hallo Forum
Auch wenn dir Frage irgendwie sehr billig ist, ich verzweifel grad dran.
Ich hab ein absolut positioniertes div, das Tooltip spielt. Es ist Test drin. Dieses soll sich so breit machen, wie der Inhalt es erfordert. Eine maximale Breite soll vorgegeben sein, da kann dann umgebrochen werden.
position absolute ist nötig, da das div verschoben werden muss. Das macht allerdings die automatische Breite kaputt. Dann lese ich dass gefloatete Elemente sich automatisch nur so breit machen wie nötig. Das tun sich aber anscheinend bei position absolute auch nicht mehr.
Und dann finde ich einen Artikel, der besagt dass gefloatete Elemente eine Breitenangabe haben müssen. Passt irgendwie nicht zur vorigen Information, dass die sich ihre Breite selber bestimmen.
Was stimmt denn davon wirklich und was kann ich machen, damit mein div sich doch so breit macht wie nötig.
Tips wie "Zeilenumbruch verhindern" hab ich schon gefunden, aber das triffts ja nicht wirklich.
@@Encoder:
nuqneH
Ich hab ein absolut positioniertes div […]. Dieses soll sich so breit machen, wie der Inhalt es erfordert.
Absolut positionierte Elemente sind nur so breit, wie es ihr Inhalt erfordert (shrink to fit). Wo ist dein Problem?
Eine maximale Breite soll vorgegeben sein, da kann dann umgebrochen werden.
Wo ist dein Problem?
position absolute ist nötig, da das div verschoben werden muss. Das macht allerdings die automatische Breite kaputt.
Nein, _das_ macht es nicht.
Dann lese ich dass gefloatete Elemente sich automatisch nur so breit machen wie nötig.
Ja, auch für Floats gilt: shrink to fit.
Das tun sich aber anscheinend bei position absolute auch nicht mehr.
Absolut positionierte Elementen floaten nicht. [CSS21 §9.5.1, §9.7]
Und dann finde ich einen Artikel, der besagt dass gefloatete Elemente eine Breitenangabe haben müssen.
Der muss schon einige Tage (ver)alt(et) sein.
was kann ich machen, damit mein div sich doch so breit macht wie nötig.
Was machst du, damit es dies nicht tut? Was immer es ist, unterlasse es.
Qapla'
Grundlage für Zitat #1738.
Hi,
Und dann finde ich einen Artikel, der besagt dass gefloatete Elemente eine Breitenangabe haben müssen.
Der muss schon einige Tage (ver)alt(et) sein.
ja, das war bei CSS/1.0 so. Die Breitenangabe durfte allerdings auch width:auto sein.
Cheatah
Ok ich weiß jetzt an was es liegt. Das div steckt in einem weiteren div, das noch zusätzliche Angaben enthält. Ich habs mal nachgestellt.
<div style="border:1px solid red; float:left; width:250px; position:relative;">
<div style="border:1px solid blue; position:absolute; left:50px; top:30px;">
<ul><li>Hier steht ein bisschen Text</li></ul>
</div>
Im div steht noch alles mögliche sonst
</div>
Die relative Positionierung des äußeren divs brauche ich um einen eigenen "block formatting context" zu erzeugen. Die ist allerdings daran schuld dass das innere div mit der ul drin dann erst mal versucht, die Grenzen des äußeren einzuhalten. Deswegen wird das "bisschen Text" umgebrochen, damit das div möglichst schmal wird, weil es ja schon nach rechts hin über das äußere div hinaus steht.
Ich schau mal ob ich mein inneres div woanders hin packen kann, damit es eigenständig steht.
Was könnte ich da sonst machen? Kann ich das auch durch CSS regeln?
Hi,
Die relative Positionierung des äußeren divs brauche ich um einen eigenen "block formatting context" zu erzeugen.
Zu welchem Zweck?
Reicht es ggf. auch, wenn du den BFC über overflow:hidden erzeugst?
MfG ChrisB