I\'m setting top or bottom and left or right values to a few elements. When i\'m trying to access this values with Firefox (16.0.2), i get a wrong value for top
I also had this annoying problem.
Some browsers return the computed position if the element is visible at the moment. The trick is to hide it, read the css and then make it visible again (if was not already hidden).
I wrote a convenient function that takes care of this and will return auto in Firefox.
jsFiddle
var getCss = function($elem, prop) {
var wasVisible = $elem.css('display') !== 'none';
try {
return $elem.hide().css(prop);
} finally {
if (wasVisible) $elem.show();
}
};
alert( getCss($('div'), 'top') );
The finally is just to bring visibility back to the element, just before the function returns.
You should use this function only for situations where you expect auto to be returned.