Dirk: DIV bzgl. overflow:visible in IE und FF unterschiedlich

Ich habe ein DIV, dessen Breite "dynamisch" sein soll. Soll heissen, ich weiss nicht genau, wie breit der Inhalt sein wird. Deshalb habe ich im style-Attribut angegeben: overflow:visible;

Das klappt grds. auch gut, nur: Wenn ich dem DIV einen Rahmen und/oder eine Hintergrundfarbe gebe, dann kann ich im FF sehen, dass diese nur bezogen auf die ursprüngliche Breite/Höhe ausgegeben werden, obwohl das DIV (bzw. das, was über das DIV hinaus geht, also "overflowed") nun breiter/höher ist.
Der IE stellt es schön dar, d.h., er weitet das DIV wirklich aus, so dass der Inhalt hinein passt. Und das möchte ich auch für den FF erreichen.

Wie kann ich das tun?

Vielen Dank
Dirk

  1. Hi,

    Das klappt grds. auch gut, nur: Wenn ich dem DIV einen Rahmen und/oder eine Hintergrundfarbe gebe, dann kann ich im FF sehen, dass diese nur bezogen auf die ursprüngliche Breite/Höhe ausgegeben werden,

    wenn Du eine Breite angegeben hast, dann hast Du eine _Breite_ angegeben, keine Mindesbreite. Firefox und alle anderen Browser wissen das auch, nur der IE versagt bei dieser leichten Übung. Üblicherweise fällt dieser IE-Bug bei der Höhe auf. Der IE 7 soll seit RC 1 endlich auch overflow:visible korrekt beherrschen.

    obwohl das DIV (bzw. das, was über das DIV hinaus geht, also "overflowed") nun breiter/höher ist.

    Nein, das Element wird *nicht* größer, Du hast schließlich eine feste Breite angegeben. Übersetze Dir kurz den Begriff "overflow" ins Deutsche, dann weißt Du dass das, was Du Dir vorstellst, gar nicht passieren *darf*.

    Der IE stellt es schön dar,

    Es mag schön sein, könnte aber kaum falscher sein.

    d.h., er weitet das DIV wirklich aus, so dass der Inhalt hinein passt. Und das möchte ich auch für den FF erreichen.
    Wie kann ich das tun?

    Wenn Du eine Mindestbreite haben willst, dann gib doch einfach eine Mindestbreite an. Ungewöhnlicherweise heißt die Eigenschaft "min-width".

    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. Wenn Du eine Mindestbreite haben willst, dann gib doch einfach eine Mindestbreite an. Ungewöhnlicherweise heißt die Eigenschaft "min-width".

      Ist ja unglaublich! Wer hat sich denn so einen Namen ausgedacht??? ;-)
      Nur, wie setze ich eine min-width, wenn ich erst zur Laufzeit weiss, wie breit das DIV überhaupt sein muss? Mit JavaScript?

      In meinem konkreten Fall wollte ich im DIV eine zuvor unbestimmte Anzahl an Datumswerten tabellarisch anzeigen. Es kann eine beliebige Anzahl an Spalten vorgegeben werden. (Letztendlich habe ich eine JSP, welche aus einer Datei bestimmte Werte einliest, u.a. auch die Anzahl von Spalten für die anzuzeigende Tabelle. Deshalb ist die Spaltenzahl in der JSP als Variable (EL-Expression Language) eingebaut. Das wird auf dem Server kompiliert, ...).

      Frage also: "Wie kann ich die min-width zur Laufzeit festlegen, wenn ich erst zur Laufzeit weiss, wie groß (breit) der Inhalt des DIVs sein wird?"

      Ansonsten: Stimmt! overflow ist halt ein Überfließen. Insofern ist das Verhalten des IE inkorrekt, auch wenn's bei mir gerade besser passt.

      Dirk

      1. Hallo Dirk

        Frage also: "Wie kann ich die min-width zur Laufzeit festlegen, wenn ich erst zur Laufzeit weiss, wie groß (breit) der Inhalt des DIVs sein wird?"

        Statt einer Breite anzugeben, kannst du das Div floaten lassen, dann richtet sich die Breite nach dem Inhalt. (float (Textumfluss), dort unter "Beachten Sie")

        Auf Wiederlesen
        Detlef

        --
        - Wissen ist gut
        - Können ist besser
        - aber das Beste und Interessanteste ist der Weg dahin!
        1. Hi, Detlef.

          Prima!!! Genau so soll's sein. Vielen, vielen Dank.
          Ich habe Dein Posting gleich mal als "fachlich hilfreich" (so heisst es hier im Forum, glaube ich) bewertet. :-)

          Gruß,
          Dirk

          Hallo Dirk

          Frage also: "Wie kann ich die min-width zur Laufzeit festlegen, wenn ich erst zur Laufzeit weiss, wie groß (breit) der Inhalt des DIVs sein wird?"

          Statt einer Breite anzugeben, kannst du das Div floaten lassen, dann richtet sich die Breite nach dem Inhalt. (float (Textumfluss), dort unter "Beachten Sie")

          Auf Wiederlesen
          Detlef