X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=jquery%2Fjquery.js;h=7577936580e49ec4de4d588e286fe9409c4cdfd2;hb=9e27d8d1b4d5a93ef4107aab5e815a2c24ed899d;hp=75dd9076b6acc63bd6fdb5fb96cd538e6ec23fec;hpb=dea19250497716bbd6f9128eacaa785a620aafde;p=jquery.git diff --git a/jquery/jquery.js b/jquery/jquery.js index 75dd907..7577936 100644 --- a/jquery/jquery.js +++ b/jquery/jquery.js @@ -320,12 +320,18 @@ function $(a,c) { (function(){ var b = navigator.userAgent.toLowerCase(); + + // Figure out what browser is being used $.browser = - ( /safari/.test(b) && "safari" ) || + ( /webkit/.test(b) && "safari" ) || ( /opera/.test(b) && "opera" ) || ( /msie/.test(b) && "msie" ) || ( !/compatible/.test(b) && "mozilla" ) || "other"; + + // Check to see if the W3C box model is being used + $.boxModel = ( $.browser != "msie" || + document.compatMode == "CSS1Compat" ); })(); $.apply = function(o,f,a) { @@ -347,10 +353,15 @@ $.apply = function(o,f,a) { $.getCSS = function(e,p) { // Adapted from Prototype 1.4.0 if ( p == 'height' || p == 'width' ) { - var ph = $.browser == "msie" ? 0 : - parseInt($.css(e,"paddingTop")) + parseInt($.css(e,"paddingBottom")); - var pw = $.browser == "msie" ? 0 : - parseInt($.css(e,"paddingLeft")) + parseInt($.css(e,"paddingRight")); + + // Handle extra width/height provided by the W3C box model + var ph = !$.boxModel ? 0 : + parseInt($.css(e,"paddingTop")) + parseInt($.css(e,"paddingBottom")) + + parseInt($.css(e,"borderTop")) + parseInt($.css(e,"borderBottom")); + + var pw = !$.boxModel ? 0 : + parseInt($.css(e,"paddingLeft")) + parseInt($.css(e,"paddingRight")) + + parseInt($.css(e,"borderLeft")) + parseInt($.css(e,"borderRight")); var oHeight, oWidth; @@ -365,7 +376,7 @@ $.getCSS = function(e,p) { els.visibility = 'hidden'; els.position = 'absolute'; els.display = ''; - oHeight = e.clientHeight - ph || parseInt(e.style.height,10); + oHeight = e.clientHeight || parseInt(e.style.height,10); oWidth = e.clientWidth || parseInt(e.style.width,10); els.display = od; els.position = op; @@ -398,7 +409,6 @@ $.clean = function(a) { for ( var i = 0; i < a.length; i++ ) { if ( a[i].constructor == String ) { if ( a[i].indexOf("