Ich habe das folgende Stück JavaScript / jquery Code:
%Vor% was erwartungsgemäß funktioniert, da es some_div
100 Pixel von der oberen Kante des Körpers positioniert und auch seine Breite und Höhe auf 100 Pixel setzt.
Wenn ich die Zeile mit der top
-Eigenschaft in css('top' , '100').
ändere, d. h. wenn ich die px
weglasse, ignoriert die Box die angegebene Eigenschaft. Offensichtlich ist px
erforderlich, damit die oberste Eigenschaft wirksam wird.
Ich frage mich, warum ich nicht px
für die Breite und die Höhe der Box angeben muss.
Nachdem Sie den Quellcode gelesen haben, sieht er eher nach einer jQuery-Eigenart aus als nach einem Browser oder einer CSS-Kuriosität. Die css-Funktion von jQuery führt den größten Teil ihrer Vorverarbeitung auf Ihren angegebenen Wert in dieser Funktion .
Die Funktion behandelt bestimmte CSS-Kuriositäten und Eingabe-Kuriositäten auf verschiedene Arten. Eine Möglichkeit besteht darin, Zahlen in Zeichenfolgen umzuwandeln, indem Sie "px" hinzufügen. Dies trifft in Ihrem Fall niemals zu, da Sie Zeichenfolgen angeben.
jQuery hat auch eine Reihe von Hooks, die auf CSS-Werten aufgerufen werden, bevor sie auf dem DOM-Knoten gesetzt werden. Ihre Werte für Breite und Höhe werden erweitert hier , um setPositiveNumber()
hinzugefügt.
Fazit: Wenn Sie die Option "px" von den Stilen "Oben", "Unten", "Links", "Rechts", "Breite" und "Höhe" auslassen, ist das CSS ungültig. Da jQuery Ihre Attribute so verändert, dass antiquierte Browser und numerische Werte unterstützt werden, kommen Sie mit ungültigem CSS in Ihren Breiten- und Höhenattributen durch Weglassen des "px" heraus!
Folgendes wird funktionieren:
%Vor%