先看看簡單的**:
這是一行高度
div>
body
>
html
>
1.在火狐3裡面,的到的是16px,
解釋下,div裡面套著文字,實際中這樣考慮,產生乙個匿名盒子裡面放置文字
"這是一行高度",由於行高為14px;那麼這個匿名盒子高度為14px;所以最終的
offsetheight=14px+1px*2(邊框)=16px;
同樣ie6裡面也得到了16px
2,但是我把line-height設定為小於14px(0--14px)那麼火狐都能夠正確得到數值
都是offsetheight=行高確定的盒子高度+上下邊框寬度
但是ie6裡面卻始終等於16px不知道是不是個bug?
有趣的是如果字型大小11px,而行高12px那麼ie6得到個15px不知道什麼意思,字型小於10得到的是14px
火狐都很正常
2.我們做如下改動:
divstyle="padding:6px;border:5px solid red;"
最後火狐和ie都得到
offsetheight=paddingtb(上下)+內容高度+上不邊框=12+16+10=38
但是如果行高改為12px
那麼火狐offsetheight=12px+10px+12px=34px正確
ie6 offsetheight=36px;奇怪不合常理 ,bug?
而且這個問題我測試如果文字是多行的話沒有。
但是,offsetheight是不包含margin的。
3.但是如果制定height呢
divstyle="padding:6px;border:5px solid red;"
火狐裡和ie是offsetheight=height+paddingtb+bordertb=50px+12+10=72正確
但是,如果height
比如高為4px那麼火狐裡還是加高度4px就是4+12+10=26正確,但是
ie裡面還是由於行高把匿名盒子撐開,所以匿名盒子高度是行高大小就是12所以
ie裡面是12+12+10=34px看著也合理。
細想想是溢位的問題了,所以對overflow做處理,應該ie撐開了預設,我們可以用overflow隱藏來看看:
加上overflow:hidden;ie和火狐都得到正確結構了,
所以這裡的問題是溢位的處理。
最終標準:
offsetheight=paddingtb+contentheight+bordertb
於是ie6存在乙個未指定height時的單行文字返回offsetheight的bug?
offsetHeight在OnLoad中為0的現象
在使用ie中,特別在目前div css的方式,往往不定義div的高度,這是在新增div內容後,需要獲取div的高度時,往往需要用到offsetheight。在使用中,有時會碰到offsetheight獲取到為0的現象,但如果你用各種js除錯工具除錯,又能在物件中看到值 如果直接指向offsethei...
網頁尺寸offsetHeight
offsetheight和offsetwidth,獲取網頁內容寬度和高度 包括滾動條等邊線,會隨視窗的顯示大小改變 一。值offsetheight clientheight 滾動條 邊框。二。瀏覽器相容性 var w document.documentelement.offsetwidth docu...
offsetHeight在不同的瀏覽器下取值不同
今天在調js的時候,發現firefox和ie在取document.body.offsetheight的值的時候結果不一樣。上網查了一下,發現如下結果 這四種瀏覽器分別為ie internet explorer ns netscape opera ff firefox clientheight 大家對...