aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeresig <jeresig@gmail.com>2010-10-22 02:16:14 -0400
committerjeresig <jeresig@gmail.com>2010-10-22 02:16:14 -0400
commit7e02cee5ff8b5e9117366d7b43af7b5794f0f258 (patch)
tree5a8fffbf971d2f34ab7d902d7f3d2b252e567b55
parentd9a3e0080a4ffe472a2ee4458b223fb1feb8021c (diff)
downloadjquery-7e02cee5ff8b5e9117366d7b43af7b5794f0f258.tar.gz
jquery-7e02cee5ff8b5e9117366d7b43af7b5794f0f258.zip
Make sure that the correct height/width of the elements is retreived. Fixes #7225.
-rw-r--r--src/css.js16
-rw-r--r--test/unit/css.js16
2 files changed, 21 insertions, 11 deletions
diff --git a/src/css.js b/src/css.js
index f2165f904..88c4ffa05 100644
--- a/src/css.js
+++ b/src/css.js
@@ -169,11 +169,23 @@ jQuery.each(["height", "width"], function( i, name ) {
});
}
- if ( val < 0 || val === 0 && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
+ if ( val < 0 ) {
return elem.style[ name ] || "0px";
}
- return val + "px";
+ if ( val === 0 ) {
+ val = curCSS( elem, name, name );
+
+ if ( val != null ) {
+ return val;
+ }
+ }
+
+ if ( val < 0 || val == null ) {
+ return elem.style[ name ];
+ }
+
+ return typeof val === "string" ? val : val + "px";
}
},
diff --git a/test/unit/css.js b/test/unit/css.js
index 8f24e2e34..2c2e9ed21 100644
--- a/test/unit/css.js
+++ b/test/unit/css.js
@@ -1,7 +1,7 @@
module("css");
test("css(String|Hash)", function() {
- expect(42);
+ expect(41);
equals( jQuery('#main').css("display"), 'block', 'Check for css property "display"');
@@ -13,21 +13,19 @@ test("css(String|Hash)", function() {
var div = jQuery( "<div>" );
- equals( div.css("width"), "0px", "Width on disconnected node." );
- equals( div.css("height"), "0px", "Height on disconnected node." );
+ equals( div.css("width") || "auto", "auto", "Width on disconnected node." );
+ equals( div.css("height") || "auto", "auto", "Height on disconnected node." );
div.css({ width: 4, height: 4 });
equals( div.css("width"), "4px", "Width on disconnected node." );
equals( div.css("height"), "4px", "Height on disconnected node." );
- var div2 = jQuery( "<div style='display:none;'><input type='text'/><textarea/></div>").appendTo("body");
+ var div2 = jQuery( "<div style='display:none;'><input type='text' style='height:20px;'/><textarea style='height:20px;'/><div style='height:20px;'></div></div>").appendTo("body");
- equals( div2.find("input").css("width"), "0px", "Width on hidden input." );
- equals( div2.find("input").css("height"), "0px", "Height on hidden input." );
-
- equals( div2.find("textarea").css("width"), "0px", "Width on hidden textarea." );
- equals( div2.find("textarea").css("height"), "0px", "Height on hidden textarea." );
+ equals( div2.find("input").css("height"), "20px", "Height on hidden input." );
+ equals( div2.find("textarea").css("height"), "20px", "Height on hidden textarea." );
+ equals( div2.find("div").css("height"), "20px", "Height on hidden textarea." );
div2.remove();