diff options
author | Mr21 <thomastortorini@gmail.com> | 2015-02-04 14:10:14 +0100 |
---|---|---|
committer | Richard Gibson <richard.gibson@gmail.com> | 2015-03-09 12:00:10 -0400 |
commit | 9b03f6df88a8d9dbda3f7893cdd84e3a3c70da17 (patch) | |
tree | 27eab5fa090fa4bbbe065667dde8d7b5cc94e49e /src/css.js | |
parent | 34da7d552982d8ab7b18c2ceca9786d5023930f6 (diff) | |
download | jquery-9b03f6df88a8d9dbda3f7893cdd84e3a3c70da17.tar.gz jquery-9b03f6df88a8d9dbda3f7893cdd84e3a3c70da17.zip |
CSS: Support relative adjustment in any applicable unit
Fixes gh-1711
Closes gh-2011
Diffstat (limited to 'src/css.js')
-rw-r--r-- | src/css.js | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/css.js b/src/css.js index d8e60b857..497b0ec53 100644 --- a/src/css.js +++ b/src/css.js @@ -3,11 +3,13 @@ define([ "./var/pnum", "./core/access", "./css/var/rmargin", + "./var/rcssNum", "./css/var/rnumnonpx", "./css/var/cssExpand", "./css/var/isHidden", "./css/var/getStyles", "./css/curCSS", + "./css/adjustCSS", "./css/defaultDisplay", "./css/addGetHookIf", "./css/support", @@ -17,8 +19,8 @@ define([ "./css/swap", "./core/ready", "./selector" // contains -], function( jQuery, pnum, access, rmargin, rnumnonpx, cssExpand, isHidden, - getStyles, curCSS, defaultDisplay, addGetHookIf, support, dataPriv ) { +], function( jQuery, pnum, access, rmargin, rcssNum, rnumnonpx, cssExpand, isHidden, + getStyles, curCSS, adjustCSS, defaultDisplay, addGetHookIf, support, dataPriv ) { var // Swappable if display is none or starts with table @@ -26,7 +28,6 @@ var // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display rdisplayswap = /^(none|table(?!-c[ea]).+)/, rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ), - rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ), cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssNormalTransform = { @@ -272,8 +273,8 @@ jQuery.extend({ type = typeof value; // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && (ret = rrelNum.exec( value )) ) { - value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + if ( type === "string" && (ret = rcssNum.exec( value )) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); // Fixes bug #9237 type = "number"; } @@ -283,9 +284,9 @@ jQuery.extend({ return; } - // If a number was passed in, add 'px' (except for certain CSS properties) - if ( type === "number" && !jQuery.cssNumber[ origName ] ) { - value += "px"; + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } // Support: IE9-11+ |