Gagamehl: Breite von positionierten Elementen

Hallo zusammen,

wenn ich ein Element absoulut positioniere und dabei eine Angabe für left und eine für right mache, weisen die Gecko-Browser und der Konqueror dem Element die gesamte Breite dieses Raums zu. Der Internet Explorer stellt das Element jedoch nur so breit dar, wie auch sein tatsächlicher Inhalt ist.

Beispiel:

div#box
{
    position: absolute;
    left: 10px;
    right: 500px;
}

Nach einiger Recherche habe ich herausgefunden, dass das (meiner Intuition nach falsche) Verhalten des IE sogar durch die CSS2.1-Spezifikation (http://www.w3.org/TR/2004/CR-CSS21-20040225/visudet.html#abs-non-replaced-width) nachträglich für korrekt erklärt wurde (wenn ich den Text richtig verstehe).

Gibt es dennoch einen Weg, das von mir gewünschte Verhalten auch für den IE zu realisieren? Eine explizite width-Angabe kann ich nämlich leider nicht machen.

  1. Hi,

    wenn ich ein Element absoulut positioniere und dabei eine Angabe für left und eine für right mache, weisen die Gecko-Browser und der Konqueror dem Element die gesamte Breite dieses Raums zu. Der Internet Explorer stellt das Element jedoch nur so breit dar, wie auch sein tatsächlicher Inhalt ist.

    ja, der IE kommt mit diesem "Konflikt" nicht klar. Er benötigt unbedingt eine width-Angabe. Analoges gilt für top und bottom.

    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
  2. Hi,

    Nach einiger Recherche habe ich herausgefunden, dass das (meiner Intuition nach falsche) Verhalten des IE sogar durch die CSS2.1-Spezifikation (http://www.w3.org/TR/2004/CR-CSS21-20040225/visudet.html#abs-non-replaced-width) nachträglich für korrekt erklärt wurde (wenn ich den Text richtig verstehe).

    Wo liest Du das raus?

    Ich sehe da z.B.:
    The constraint that determines the used values for these elements is:

    'left' + 'margin-left' + 'border-left-width' + 'padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' + 'right' = width of containing block
    [...]
    Otherwise, set 'auto' values for 'margin-left' and 'margin-right' to 0, and pick the one of the following six rules that applies.
    [...]
    5. 'width' is 'auto', 'left' and 'right' are not 'auto', then solve for 'width'

    Bei den anderen 5 der 6 Regeln stimmen die Bedingungen, was 'auto' ist, nicht - es kann also nur diese benutzt werden.

    width muß demnach aus left und right (und den margins/borders/paddings) berechnet werden.

    Gibt es dennoch einen Weg, das von mir gewünschte Verhalten auch für den IE zu realisieren?

    Schreib an Microsoft und verlange ein Update ...
    Ansonsten: Microsoft versteht (manchmal?) expression() im Wert von CSS-Eigenschaften. Vielleicht kannst Du ja damit was basteln.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi!

      Ansonsten: Microsoft versteht (manchmal?) expression() im Wert von CSS-Eigenschaften. Vielleicht kannst Du ja damit was basteln.

      Cool, das kannte ich noch gar nicht, danke!

      Gruß

      1. Hi,

        Ansonsten: Microsoft versteht (manchmal?) expression() im Wert von CSS-Eigenschaften. Vielleicht kannst Du ja damit was basteln.
        Cool, das kannte ich noch gar nicht, danke!

        Das ist JScript.

        Scripting kann abgeschaltet sein.

        Der IE ist *der* Browser, bei dem das Abschalten des Scriptings *mit Abstand am dringlichsten* geboten ist.

        Ziehe deine Schlußfolgerungen! ;-)

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!