火狐在需要取得p的高度時,往往需要用到offsetHeight,有時會碰到offsetHeight取得到為0的現象,下面為大家介紹下比較實用的解決方法,有興趣的朋友可參考下
火狐在需要取得p的高度時,往往需要用到offsetHeight,有時會碰到offsetHeight取得到為0的現象,
在使用IE或火狐中,特別在目前p css的方式,往往不定義p的高度,這是在添加p內容後,需要取得p的高度時,往往需要用到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 = '<p id="pcj" style="margin-top:15px;font-size:10px;width:400px;">' + '<p style="float:left;width:50px;">测试</p>' + '<p style="float:left;width:320px;">danielinbiti</p>' + '</p>' + '<p id="pcj2" style="margin-top:15px;font-size:10px;width:400px;">' + '<p style="width:320px;">danielinbiti</p>' + '</p>' document.getElementById('outer').innerHTML=html1; document.getElementById('pcj2').style.display='none'; alert(document.getElementById('pcj2').offsetHeight); } </script> </head> <body> <p id='outer'></p> </body> </html>
如果取得pcj的高度,那麼在onload中取得到的是0。因為pcj下有float方式佈局的。
這時如果p簡單,可以藉助隱藏層,例如這裡的pcj2,把float去掉後,取得到的高度和pcj一樣高。
這裡有一個關鍵點就是float佈局在ie是沒問題,但是對於火狐它取到就為0了
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
以上是如何解決火狐在用offsetHeight取得div的高度時為0的詳細內容。更多資訊請關注PHP中文網其他相關文章!