diff options
author | jeresig <jeresig@gmail.com> | 2010-10-22 02:16:14 -0400 |
---|---|---|
committer | jeresig <jeresig@gmail.com> | 2010-10-22 02:16:14 -0400 |
commit | 7e02cee5ff8b5e9117366d7b43af7b5794f0f258 (patch) | |
tree | 5a8fffbf971d2f34ab7d902d7f3d2b252e567b55 | |
parent | d9a3e0080a4ffe472a2ee4458b223fb1feb8021c (diff) | |
download | jquery-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.js | 16 | ||||
-rw-r--r-- | test/unit/css.js | 16 |
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(); |