From 449e099b97d823ed0252d8821880bc0e471701ea Mon Sep 17 00:00:00 2001 From: John Resig Date: Wed, 11 Nov 2009 14:17:16 -0500 Subject: [PATCH] Landing tweak from 'haruka' that fixes non-pixel fontSize values in IE. Fixes #760. --- src/css.js | 4 ++-- test/data/testsuite.css | 4 ++++ test/unit/css.js | 13 ++++++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/css.js b/src/css.js index 6abcc95..ddd42b4 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 7a16243..5cc7828 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 649db59..beac04a 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() { -- 1.7.10.4