Make sure that accessing computed CSS for elements returns 'auto' instead of '' consistently. Fixes #7337.

This commit is contained in:
jeresig 2010-11-01 19:04:59 -04:00
parent e377621eaf
commit 9d1bfeb7ff
2 changed files with 7 additions and 6 deletions

View file

@ -173,12 +173,13 @@ jQuery.each(["height", "width"], function( i, name ) {
val = curCSS( elem, name, name );
if ( val != null ) {
return val === "auto" ? "" : val;
return val;
}
}
if ( val < 0 || val == null ) {
return elem.style[ name ];
val = elem.style[ name ];
return val === "" ? "auto" : val;
}
return typeof val === "string" ? val : val + "px";
@ -247,7 +248,7 @@ if ( getComputedStyle ) {
}
}
return ret;
return ret === "" ? "auto" : ret;
};
} else if ( document.documentElement.currentStyle ) {
@ -274,7 +275,7 @@ if ( getComputedStyle ) {
elem.runtimeStyle.left = rsLeft;
}
return ret;
return ret === "" ? "auto" : ret;
};
}

View file

@ -13,8 +13,8 @@ test("css(String|Hash)", function() {
var div = jQuery( "<div>" );
equals( div.css("width"), "", "Width on disconnected node." );
equals( div.css("height"), "", "Height on disconnected node." );
equals( div.css("width"), "auto", "Width on disconnected node." );
equals( div.css("height"), "auto", "Height on disconnected node." );
div.css({ width: 4, height: 4 });