rupper = /([A-Z]|^ms)/g,
rnumpx = /^-?\d+(?:px)?$/i,
rnum = /^-?\d/,
+ rrelNum = /=/,
+ rrelString = /[^+\-\de]+/g,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssWidth = [ "Left", "Right" ],
}
// Make sure that we're working with the right name
- var ret, origName = jQuery.camelCase( name ),
+ var ret, parsed, type, origName = jQuery.camelCase( name ),
style = elem.style, hooks = jQuery.cssHooks[ origName ];
name = jQuery.cssProps[ origName ] || origName;
return;
}
+ // convert string to number or relative number
+ if ( type === "string" ) {
+ parsed = +value.replace( rrelString, '' );
+ value = rrelNum.test( value ) ? parsed + jQuery.css( elem, name ) : parsed;
+ }
+
// If a number was passed in, add 'px' to the (except for certain CSS properties)
if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
value += "px";
equals( child[0].style.fontSize, old, "Make sure font-size isn't changed on null." );
});
+test("css() explicit and relative values", function() {
+ var $elem = jQuery('#nothiddendiv');
+
+ $elem.css({ width: 1, height: 1 });
+ ok( [$elem.width(), $elem.height()], [1,1] );
+ $elem.css({ width: "+=9", height: "+=9" });
+ ok( [$elem.width(), $elem.height()], [10,10] );
+ $elem.css({ width: "-=9", height: "-=9" });
+ ok( [$elem.width(), $elem.height()], [1,1] );
+ $elem.css({ width: "+=9px", height: "+=9px" });
+ ok( [$elem.width(), $elem.height()], [10,10] );
+ $elem.css({ width: "-=9px", height: "-=9px" });
+ ok( [$elem.width(), $elem.height()], [1,1] );
+ $elem.css("width", "+=9").css("height", "+=9");
+ ok( [$elem.width(), $elem.height()], [10,10] );
+ $elem.css("width", "+9").css("height", "+9");
+ ok( [$elem.width(), $elem.height()], [9,9] );
+ $elem.css("width", "-9").css("height", "-9");
+ ok( [$elem.width(), $elem.height()], [0,0] );
+});
+
test("css(String, Object)", function() {
expect(22);