Breite von positionierten Elementen
Gagamehl
- css
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.
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
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
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ß
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