Made sure that css() in IE handles negative non-px values correctly. Fixes #3331.
authorjeresig <jeresig@gmail.com>
Sat, 5 Dec 2009 20:12:02 +0000 (15:12 -0500)
committerjeresig <jeresig@gmail.com>
Sat, 5 Dec 2009 20:12:02 +0000 (15:12 -0500)
src/css.js
test/unit/css.js

index a16298d..c36b6dc 100644 (file)
@@ -5,8 +5,8 @@ var rexclude = /z-?index|font-?weight|opacity|zoom|line-?height/i,
        rfloat = /float/i,
        rdashAlpha = /-([a-z])/ig,
        rupper = /([A-Z])/g,
-       rnumpx = /^\d+(?:px)?$/i,
-       rnum = /^\d/,
+       rnumpx = /^-?\d+(?:px)?$/i,
+       rnum = /^-?\d/,
 
        // cache check for defaultView.getComputedStyle
        getComputedStyle = document.defaultView && document.defaultView.getComputedStyle,
index c199ca1..7627475 100644 (file)
@@ -59,13 +59,16 @@ test("css(String|Hash)", function() {
 });
 
 test("css(String, Object)", function() {
-       expect(20);
+       expect(21);
        ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible');
        jQuery('#nothiddendiv').css("display", 'none');
        ok( !jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is hidden');
        jQuery('#nothiddendiv').css("display", 'block');
        ok( jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is visible');
 
+       jQuery("#nothiddendiv").css("top", "-1em");
+       ok( jQuery("#nothiddendiv").css("top"), -16, "Check negative number in EMs." );
+
        jQuery('#floatTest').css('styleFloat', 'left');
        equals( jQuery('#floatTest').css('styleFloat'), 'left', 'Modified CSS float using "styleFloat": Assert float is left');
        jQuery('#floatTest').css('cssFloat', 'right');