offsetHeight在FF和IE6中的差異?

2021-09-21 23:28:14 字數 1940 閱讀 8145

先看看簡單的**:

這是一行高度

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 大家對...