Encoder: Breite eines absolut positionierten divs

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.

  1. @@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'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. 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

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. 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?

        1. 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

          --
          “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]