Img-Attribute width und height
lina-
- javascript
moin liebes Forum :)
heute habe ich mal wieder ein Problem mit dem Mozilla für MacOs.
Folgendes Html-Javascript-Css-Wirrwarr habe ich:
<html>
<script type="text/javascript">
function load(){
document.getElementById("test").style.height="200px";
}
</script>
<body>
<div id="test" style="border-color:red;border-style:solid;border-width:2px">
</div>
<a href="javascript:load()">Div vergrößern</a>
<script type="text/javascript">
var img=document.createElement("img");
img.src="[Pfad zu einem beliebigen Bild]";
img.border="0";
img.height="50";
img.width="50";
document.getElementById("test").appendChild(img);
</script>
</body>
</html>
Was soll das tun?
Es soll ein Bild in das Div setzen und die Größe auf 50px setzen.
Bei Klick auf den Link soll _nur_ das Div vergrößert werden.
Funktioniert im IE und im Firefox toll.
Mit dem Mozilla 1.3 unter MacOs9 wird das Bild wieder auf seine ursprüngliche Größe gesetzt!
Ich habe mittlerweile herausgefunden, wie ich das umgehen kann.
Klar kann ich einfach statt img.width img.style.width setzen. So gehts in allen Browsern.
Trotzdem wundere ich mich über zwei Dinge:
1. Wieso zeigt der Firefox gar kein Bild, wenn ich img.width="50px" (px!) angebe? Ich weiss, dass ich keine Einheit angeben brauche und automatisch px herangezogen wird... aber trotzdem sollte das doch funktionieren, wenn ich eine Einheit angebe - oder?
2. Wieso legt der Mozilla unter Mac ein so seltsames Verhalten an den Tag, dass der die Imageattribute "vergisst"?
Weiss da jemand was zu?
PS: ich möchte nicht über Sinn oder Unsinn dieses Codes diskutieren ;) Natürlich werde ich mit styles weiterarbeiten... trotzdem beschäftigt mich das Problem... Attribute können doch noch nicht sooo veraltet sein.
liebe Grüße aus Berlin
lina-
Moin
- Wieso zeigt der Firefox gar kein Bild, wenn ich img.width="50px" (px!) angebe? Ich weiss, dass ich keine Einheit angeben brauche und automatisch px herangezogen wird... aber trotzdem sollte das doch funktionieren, wenn ich eine Einheit angebe - oder?
nein, denn das ist einfach falsch!
Gruß
rfb
moin rfb :)
nein, denn das ist einfach falsch!
Diese Aussage benötigt Erklärung... _was_ ist falsch?
liebe Grüße aus Berlin
lina-
Hi!
Diese Aussage benötigt Erklärung... _was_ ist falsch?
Bei Angaben zu height oder width eine Einheit zu verwenden.
mfG
- Wieso zeigt der Firefox gar kein Bild, wenn ich img.width="50px" (px!) angebe? Ich weiss, dass ich keine Einheit angeben brauche und automatisch px herangezogen wird... aber trotzdem sollte das doch funktionieren, wenn ich eine Einheit angebe - oder?
Falsch! Längenangaben in HTML sind, wenn es Pixel sein sollen, *ohne* Einheit! Beispiel: width="500"
bedeutet "500 Pixel Breite". In CSS hingegen *muss* bei Längen eine Einheit angegeben werden (Ausnahme ist hierbei 0, da ist es optional). Beispiel: width:500px
bedeutet "500 Pixel Breite".
moin Timo, Benjamin :)
Ok.. wusste ich nicht.
das erklärt zumindest das Verhalten vom Firefox...
Aber was ist mit dem Mozilla?
liebe Grüße aus Berlin
lina-
das erklärt zumindest das Verhalten vom Firefox...
Aber was ist mit dem Mozilla?
Firefox ist ein Mozilla
Struppi.
moin Struppi :)
Firefox ist ein Mozilla
Gibt es Firefox für MacOS9?
liebe Grüße aus Berlin
lina-
Firefox ist ein Mozilla
Gibt es Firefox für MacOS9?
Weiß ich nicht, steht das nicht. Steht das nicht auf http://www.mozilla.org/
Struppi.
moin Struppi :)
Gibt es Firefox für MacOS9?
Weiß ich nicht, steht das nicht. Steht das nicht auf http://www.mozilla.org/
Das war eine rhetorische Fragen... Nein es gibt ihn nicht. Firefox läuft erst auf MacOsX.
liebe Grüße aus Berlin
lina-
Gibt es Firefox für MacOS9?
Weiß ich nicht, steht das nicht. Steht das nicht auf http://www.mozilla.org/
Das war eine rhetorische Fragen... Nein es gibt ihn nicht. Firefox läuft erst auf MacOsX.
Trotzdem ist Firefox ein Mozilla
Struppi.
moin Struppi :)
Trotzdem ist Firefox ein Mozilla
Sorry - aber das ist unlogisch... wenn es für dieses Betriebssystem keinen Firefox gibt, kannst du nicht behaupten, der aktuelle Firefox wär das gleiche wie der damalige Mozilla.
liebe Grüße aus Berlin
lina-
Trotzdem ist Firefox ein Mozilla
Sorry - aber das ist unlogisch... wenn es für dieses Betriebssystem keinen Firefox gibt, kannst du nicht behaupten, der aktuelle Firefox wär das gleiche wie der damalige Mozilla.
hab ich nicht, unter Hilfe 'über..' steht welche Gecko Version jeweils dahinter steht.
Struppi.
Hallo,
Aber was ist mit dem Mozilla?
Firefox ist ein Mozilla
ja, aber anscheinend ein abgespeckter.
Und wenn es ums Testen von Webseiten in verschiedenen Browsern geht, dann liest man auch hier im Forum immer wieder, dass es wohl nicht nur im Funktionsumfang, sondern auch im Verhalten kleine Unterschiede zwischen Firefox und dem großen Bruder Mozilla gibt. Ich vermute deshalb, dass sie nicht dieselbe, sondern nur eine sehr ähnliche Engine verwenden.
Daher ist die Frage "Firefox okay, und was ist mit Mozilla?" IMHO gar nicht so abwegig.
So long,
Martin
Daher ist die Frage "Firefox okay, und was ist mit Mozilla?" IMHO gar nicht so abwegig.
Naja, bei der Frage ging es ja um eine grundsätzliche Sache und da sollten sich die verschiedenen Gecko Versionen nicht unterscheiden.
Aber da ich keine Möglichkeit habe ein MacOS9 zu testen, weiß ich nicht wie das Verhalten zu erklären ist.
Aber ich habe es auch nicht genau verstanden was da wann passiert soll, es sind zu viele Fragen offen.
Struppi.
moin Struppi :)
Naja, bei der Frage ging es ja um eine grundsätzliche Sache und da sollten sich die verschiedenen Gecko Versionen nicht unterscheiden.
Tun sie aber... wie beschrieben.
Aber ich habe es auch nicht genau verstanden was da wann passiert soll, es sind zu viele Fragen offen.
Zum Beispiel? Mich hat niemand gefragt...
liebe Grüße aus Berlin
lina-
moin Struppi :)
Aber ich habe es auch nicht genau verstanden was da wann passiert soll, es sind zu viele Fragen offen.
Bin grad mal auf die glorreiche Idee gekommen den Mozilla für Windows zu installieren (Version 1.7.8).
Hier funktioniert alles wie im Firefox.
Ergo scheint es ein Versions- oder Betriebssystemproblem zu sein. (wobei ich ja fast auf Version tippen würde)
liebe Grüße aus Berlin
lina-
Hi,
Hier funktioniert alles wie im Firefox.
Ergo scheint es ein Versions- oder Betriebssystemproblem zu sein. (wobei ich ja fast auf Version tippen würde)
Nichts für ungut, aber wo ist der Sinn, herauszufinden, welcher Browser in welcher Version unter welchem OS falschen Code so interpretiert, wie es der Autor gerne hätte? Soll der Autor doch gefälligst korrekten Code produzieren ... =:-)
Gruß, Cy-"wer keine Probleme hat, macht sich welche >;-)"-baer
moin Cybaer :)
Nichts für ungut, aber wo ist der Sinn, herauszufinden, welcher Browser in welcher Version unter welchem OS falschen Code so interpretiert, wie es der Autor gerne hätte? Soll der Autor doch gefälligst korrekten Code produzieren ... =:-)
Es ist nicht korrekt Attibute per Dom zu setzen?
liebe Grüße aus Berlin
lina-
Nichts für ungut, aber wo ist der Sinn, herauszufinden, welcher Browser in welcher Version unter welchem OS falschen Code so interpretiert, wie es der Autor gerne hätte? Soll der Autor doch gefälligst korrekten Code produzieren ... =:-)
Es ist nicht korrekt Attibute per Dom zu setzen?
Mittlerweile ist das Thema ein wenig abgedriftet. Was ist momentan deine Frage.
Warum du für die Eigenschaft image.width keine Einheit angeben kannst oder warum das Bild nur so gross dargestellt wird wie es ist. Oder wie du Attribute per DOM setzt (diese Frage taucht hier zum ersten Mal auf)?
Struppi.
Hi,
Es ist nicht korrekt Attibute per Dom zu setzen?
Kommt drauf an.
Das ist aber in diesem Fall nicht der Punkt. Der Punkt war: Wie ist das Browserverhalten, wenn man Attribute mit falschem Wert füllt, oder? Antwort: Das ist egal, denn der Autor hat Attribute gefälligst mit einem korrekten Wert zu füllen. :)
Gruß, Cy-"Zuckerschock durch zuviel Marzipan?"-baer ;)
moin Cybaer, Struppi :)
Das ist aber in diesem Fall nicht der Punkt. Der Punkt war: Wie ist das Browserverhalten, wenn man Attribute mit falschem Wert füllt, oder? Antwort: Das ist egal, denn der Autor hat Attribute gefälligst mit einem korrekten Wert zu füllen. :)
Hui... ich merk schon... meine Fragen wurden zusammengewürfelt und ich hab mich nicht deutlich genug ausgedrückt.
Die Fragen, die ich eingangs stellte hatten nicht _miteinerander_ zu tun.
Die Frage nach den Einheiten wurde ja auch schon zufriedenstellend beantwortet.
Jetzt wundere ich mich nur noch über das Verhalten von Mozilla unter Mac (Version 1.2).
Fakt ist:
1. dass ich die Attribute width und height für das img setze (ohne Einheit, wie ich gelernt habe), so dass das Bild kleiner dargestellt wird, als es ist.
2. ich im Nachgang die Größe des _Elternelementes_ ändere
2. das Img seine Attribute vergessen hat (Bild wird genau so groß dargestellt, wie es ist)
liebe Grüße aus Berlin
lina-
Jetzt wundere ich mich nur noch über das Verhalten von Mozilla unter Mac (Version 1.2).
Fakt ist:
- dass ich die Attribute width und height für das img setze (ohne Einheit, wie ich gelernt habe), so dass das Bild kleiner dargestellt wird, als es ist.
Das tust du bevor das Bild fertig geladen ist.
- ich im Nachgang die Größe des _Elternelementes_ ändere
Wenn das Bild kann dann entweder so graoß dargstellt werden, wie es ist oder maximal so gross wie das Elternelement.
- das Img seine Attribute vergessen hat (Bild wird genau so groß dargestellt, wie es ist)
Da liegt der Unterschied, u.U. (ich kann es nicht prüfen) wird in der Version auf dem Mac, nach dem laden, die Größe des Bildes neu gesetzt, das macht ja auch Sinn. Ein anderes Verhalten kenne ich nur vom Netscape 4, wo sich die Bildgröße nicht mehr nachträglich ändern läßt.
Du stolperst wohl darüber, dass wenn man im HTML code die angaben macht, sich das Bild skaliert, also den Eindruck erweckt du fixierst das Bild. Dem ist aber nicht so:
<img src="test.jpg" onclick="this.width=prompt('neue Breite', this.width)" width=100 height=100>
Ich vermute, wie gesagt das das unterschiedliche Verhalten damit zu erklären ist, das einmal das Bild schom im Cache ist und im anderen Falle nicht oder das je nach System der browser unterschiedlich schnell reagiert.
Probier das mal aus:~~~javascript
img.src="[Pfad zu einem beliebigen Bild]";
img.onload = function ()
{
this.border = 0;
this.height = 50;
this.width = 50;
}
(Zahlen brauchen keine Anführungszeichen)
Struppi.
--
[Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)
moin Struppi :)
Ich vermute, wie gesagt das das unterschiedliche Verhalten damit zu erklären ist, das einmal das Bild schom im Cache ist und im anderen Falle nicht oder das je nach System der browser unterschiedlich schnell reagiert.
_Das_ wars! Danke für die Erklärung :)
Probier das mal aus:~~~javascript
img.src="[Pfad zu einem beliebigen Bild]";
img.onload = function ()
{
this.border = 0;
this.height = 50;
this.width = 50;
}
> (Zahlen brauchen keine Anführungszeichen)
Funktioniert bestens... und dabei ist das so einfach.
Aber meine Neugier ist befriedigt und ich bin wieder was schlauer. Danke :)
liebe Grüße aus Berlin
lina-
--
[Dinge aus dem linaland](http://linaland.twoday.net)
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)