火狐在用offsetHeight获得div的高宽比时为0的处理方

2021-01-20 10:44 jianzhan
火狐在必须获得div的高宽比时,常常必须用到offsetHeight,有时会碰到offsetHeight获得到为0的状况,
在应用IE或火狐中,非常在现阶段div+css的方法,常常不确定义div的高宽比,这是在加上div內容后,必须获得div的高宽比时,常常必须用到offsetHeight。

在应用中,有时会碰到offsetHeight获得到为0的状况,但假如你用各种各样JS调节专用工具调节,又能在目标中看到值(假如立即指向offsetHeight是没值的,但假如是目标查询是有值的,在调节器中回车查询目标就早已更新目标了,因此有值。)

例如下面片断
编码以下:

拷贝编码
编码以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script language='javascript'>
window.attachEvent( "onload", function(){ _resizeScroll2();} );
window.onresize=function(){winresize();};
function _resizeScroll2(){
var html1 = '<div id="divcj" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="float:left;width:50px;">检测</div>'
+ '<div style="float:left;width:320px;">danielinbiti</div>'
+ '</div>'
+ '<div id="divcj2" style="margin-top:15px;font-size:10px;width:400px;">'
+ '<div style="width:320px;">danielinbiti</div>'
+ '</div>'
document.getElementById('outer').innerHTML=html1;
document.getElementById('divcj2').style.display='none';
alert(document.getElementById('divcj2').offsetHeight);
}
</script>
</head>
<body>
<div id='outer'></div>
</body>
</html>

假如获得divcj的高宽比,那末在onload中获得到的是0。由于divcj下有float方法合理布局的。

这时候假如div简易,能够依靠掩藏层,例如这里的divcj2,把float去掉后,获得到的高宽比和divcj1样高。

这里有1个重要点便是float合理布局在ie是没难题,可是针对火狐它取到就为0了