X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcss.js;h=19c6342d22b853fd087becaec4b373bbb5b16eaa;hb=4a828c93d40eb67b2041b08bbed0f1973442bd03;hp=a6e2bb6143613a6d187a58c7f803d7beacff5afe;hpb=012f0c3b4bd3d04c2f3e1ea80fc1230901d607d9;p=jquery.git diff --git a/src/css.js b/src/css.js index a6e2bb6..19c6342 100644 --- a/src/css.js +++ b/src/css.js @@ -12,6 +12,9 @@ var ralpha = /alpha\([^)]*\)/i, cssHeight = [ "Top", "Bottom" ], curCSS, + getComputedStyle, + currentStyle, + fcamelCase = function( all, letter ) { return letter.toUpperCase(); }; @@ -169,6 +172,10 @@ jQuery.each(["height", "width"], function( i, name ) { if ( val <= 0 ) { val = curCSS( elem, name, name ); + if ( val === "0px" && currentStyle ) { + val = currentStyle( elem, name, name ); + } + if ( val != null ) { // Should return "auto" instead of 0, use 0 for // temporary backwards-compat @@ -234,7 +241,7 @@ if ( !jQuery.support.opacity ) { } if ( document.defaultView && document.defaultView.getComputedStyle ) { - curCSS = function( elem, newName, name ) { + getComputedStyle = function( elem, newName, name ) { var ret, defaultView, computedStyle; name = name.replace( rupper, "-$1" ).toLowerCase(); @@ -252,10 +259,13 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) { return ret; }; -} else if ( document.documentElement.currentStyle ) { - curCSS = function( elem, name ) { - var left, rsLeft, +} + +if ( document.documentElement.currentStyle ) { + currentStyle = function( elem, name ) { + var left, ret = elem.currentStyle && elem.currentStyle[ name ], + rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ], style = elem.style; // From the awesome hack by Dean Edwards @@ -266,22 +276,27 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) { if ( !rnumpx.test( ret ) && rnum.test( ret ) ) { // Remember the original values left = style.left; - rsLeft = elem.runtimeStyle.left; // Put in the new values to get a computed value out - elem.runtimeStyle.left = elem.currentStyle.left; + if ( rsLeft ) { + elem.runtimeStyle.left = elem.currentStyle.left; + } style.left = name === "fontSize" ? "1em" : (ret || 0); ret = style.pixelLeft + "px"; // Revert the changed values style.left = left; - elem.runtimeStyle.left = rsLeft; + if ( rsLeft ) { + elem.runtimeStyle.left = rsLeft; + } } return ret === "" ? "auto" : ret; }; } +curCSS = getComputedStyle || currentStyle; + function getWH( elem, name, extra ) { var which = name === "width" ? cssWidth : cssHeight, val = name === "width" ? elem.offsetWidth : elem.offsetHeight;