Sle*_*vin 10 css firefox jquery
我将顶部或底部和左或右值设置为几个元素.当我尝试使用Firefox(16.0.2)访问此值时,我得到一个错误的值top(特定值而不是auto)
CSS
div {
bottom:200px;
left:0px;
top:auto;
right:auto;
}
Run Code Online (Sandbox Code Playgroud)
JS
$(function(){
var top = $('div').css('top');
alert(top);
});?
Run Code Online (Sandbox Code Playgroud)
你可以在这里试试:http://jsfiddle.net/UEyxD/2/(适用于Chrome/Safari)
任何想法如何防止这种情况?我想得到
我也有这个恼人的问题.
如果元素此刻可见,则某些浏览器返回计算的位置.诀窍是隐藏它,读取css然后再次使其可见(如果尚未隐藏).
我写了一个方便的函数来处理这个并将auto在Firefox中返回.
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') );
Run Code Online (Sandbox Code Playgroud)
该finally只是把知名度回元素,只是在函数返回之前.
您应该仅在您希望auto返回的情况下使用此功能.
使用以下代码设置'auto'时,您可以获得top的整数值:
$(function(){
var top = $('div').offset().top;
alert(top);
});?
Run Code Online (Sandbox Code Playgroud)