• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

jQuery width() liefert bei Chrome immer 0

S

Sempervivum

Guest
Ich habe diesen Code gefunden, der prüft, ob CSS-calc unterstützt wird:
Code:
// Check whether CSS-calc is supported
help = $('<img src="/images/buttonup.png">');
help.css({ width: "10px" });
help.css({ width: "calc(10px + 10px)" });
if (help.width() == 20) var calcSupport = true; else var calcSupport = false;
Funktioniert im Firefox aber nicht im Chrome. Der Grund ist anscheinend, dass width() im Chrome 0 liefert.
Chrome unterstützt calc jedoch, wie das Verhalten an anderer Stelle zeigt.
 
Werbung:
Nicht dein Ernst, oder?

Du bist doch lange genug dabei, um zu wissen, dass man Code nicht findet, sondern selber schreibt und bei JS-Problemen grundsätzlich die Konsole zu Rate gezogen wird. Zumal das Obige nun wirklich Einsteiger-Niveau ist.

Gib mal $('<img src="/images/buttonup.png">') ein und schau, was die Konsole zurück liefert.
 
Ich hätte mich wohl besser gleich an die Quelle wenden sollen:
http://stackoverflow.com/questions/31225815/check-for-css-calc-doesnt-work-in-chrome
Dort habe ich mehrere konstruktive Antworten bekommen und das Ergebnis ist, dass Chrome computed styles nicht berechnen kann, wenn das Element nicht im DOM ist. So funktioniert es:
Code:
// Check whether CSS-calc is supported
help = $('<img src="/images/buttonup.png">');
$("body").append(help);
help.css({ width: "10px" });
help.css({ width: "calc(10px + 10px)" });
if (help.width() == 20) var calcSupport = true; else var calcSupport = false;
help.remove();
 
Werbung:
Die Antwort war nach einigen Bierchen und bei der Hitze heute nacht nicht besonders freundlich, aber trotzdem konstruktiv, und überlege dir mal deine Frage: Du schreibst, dass width() auf ein Element im Chrome 0 zurück liefert und hinterher stellt sich heraus, dass dieses Element nicht Bestandteil des DOMs ist. Die von mir vorgeschlagene Konsoleneingabe hätte dir leere Square-Brackets und damit implizit die Antwort geliefert.

Nebenbei bemerkt hat Chrome 43 Probleme mit calc(), sofern man es als calc(100% - XXpx) anwendet. Da hilft es dann, 1 Pixel abzuziehen.
 
Zuletzt bearbeitet:
Zurück
Oben