From: John Resig Date: Wed, 11 Nov 2009 19:17:16 +0000 (-0500) Subject: Landing tweak from 'haruka' that fixes non-pixel fontSize values in IE. Fixes #760. X-Git-Tag: 1.4a1~68 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=449e099b97d823ed0252d8821880bc0e471701ea;p=jquery.git Landing tweak from 'haruka' that fixes non-pixel fontSize values in IE. Fixes #760. --- diff --git a/src/css.js b/src/css.js index 6abcc956a..ddd42b4b2 100644 --- a/src/css.js +++ b/src/css.js @@ -167,7 +167,7 @@ jQuery.extend({ // Put in the new values to get a computed value out elem.runtimeStyle.left = elem.currentStyle.left; - style.left = ret || 0; + style.left = camelCase === "fontSize" ? "1em" : (ret || 0); ret = style.pixelLeft + "px"; // Revert the changed values @@ -212,4 +212,4 @@ if ( jQuery.expr && jQuery.expr.filters ) { jQuery.expr.filters.visible = function(elem){ return !jQuery.expr.filters.hidden(elem); }; -} \ No newline at end of file +} diff --git a/test/data/testsuite.css b/test/data/testsuite.css index 7a162431f..5cc782824 100644 --- a/test/data/testsuite.css +++ b/test/data/testsuite.css @@ -103,3 +103,7 @@ div.chain.out { background: green; } div.chain.out div { background: red; display: none; } div#show-tests * { display: none; } + +#nothiddendiv { font-size: 16px; } +#nothiddendivchild.em { font-size: 2em; } +#nothiddendivchild.prct { font-size: 150%; } diff --git a/test/unit/css.js b/test/unit/css.js index 649db5966..beac04a89 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -1,7 +1,7 @@ module("css"); test("css(String|Hash)", function() { - expect(23); + expect(27); equals( jQuery('#main').css("display"), 'none', 'Check for css property "display"'); @@ -38,6 +38,17 @@ test("css(String|Hash)", function() { equals( jQuery('#empty').css('opacity'), '0', "Assert opacity is accessible via filter property set in stylesheet in IE" ); jQuery('#empty').css({ opacity: '1' }); equals( jQuery('#empty').css('opacity'), '1', "Assert opacity is taken from style attribute when set vs stylesheet in IE with filters" ); + + var div = jQuery('#nothiddendiv'), child = jQuery('#nothiddendivchild'); + + equals( parseInt(div.css("fontSize")), 16, "Verify fontSize px set." ); + equals( parseInt(child.css("fontSize")), 16, "Verify fontSize px set." ); + + child.attr("class", "em"); + equals( parseInt(child.css("fontSize")), 32, "Verify fontSize em set." ); + + child.attr("class", "prct"); + equals( parseInt(child.css("fontSize")), 24, "Verify fontSize % set." ); }); test("css(String, Object)", function() {