無DTD文檔格式時(shí),各瀏覽器對(duì)document.body各屬性的解釋多種多樣,在最大化和非最大化情況下解釋又會(huì)有些出入,而
在加上DTD文檔格式后,IE7,FF,OPERA這三個(gè)瀏覽器表現(xiàn)出了驚人的一致性,只有IE6在頁面內(nèi)容超出窗口大
小時(shí)出現(xiàn)了大變化(具體請看IE6部分),也就是說在正常的窗口最大化情況下,四個(gè)瀏覽器對(duì)這些屬性的解釋都是一樣的,既:
scrollHeight=
內(nèi)容實(shí)際高度;
scrollWidth=可視區(qū)域?qū)挾龋?br />
clientWidth=可視區(qū)域?qū)挾龋?br />
clientHeight=內(nèi)容
實(shí)際高度;
offsetWidth=可視區(qū)域?qū)挾龋?br />
offsetHeight=內(nèi)容實(shí)際高度;
IE6在頁面內(nèi)容超出窗口
大小時(shí)將寬度屬性scrollWidth、clientWidth、offsetWidth都解釋為內(nèi)容實(shí)際寬度。
只有兩種解釋:所有的寬度屬性(?Width)被解釋為可視區(qū)域?qū)挾?,高度屬??Height)被解釋為內(nèi)容實(shí)際的
高度。很吃驚,但經(jīng)過我多次測試(我還用高度1400、寬度為1600的內(nèi)容測試過),得出的結(jié)論和上面的一致,不管是多高多寬,
在申明了文檔類型DTD之后,這些屬性的解釋就和滾動(dòng)條、邊框沒有關(guān)系了。這個(gè)結(jié)果和網(wǎng)上流傳的大不相同啊,哈哈!但我想我是對(duì)的!希望能傳播給大家正確
的知識(shí)!
建議:
1.在使用這些屬性時(shí),一定要申明文檔類型!
2.IE6瀏覽器下要做相應(yīng)的修正!
3.
盡量不要用到這些屬性,因?yàn)闀?huì)讓你很暈=.=!
在限定了文檔類型的情況下,多數(shù)瀏覽器對(duì)document.body屬性的解釋都是相同的:在加上DTD文檔格式后,IE7,FF,OPERA
這三個(gè)瀏覽器表現(xiàn)出了驚人的一致性,只有IE6在頁面內(nèi)容超出窗口大小時(shí)出現(xiàn)了大變化(具體請看IE6部分),也就是說在正常的窗口最大化情況下,四個(gè)瀏
覽器對(duì)這些屬性的解釋都是一樣的,既:
- body.scrollHeight=內(nèi)容實(shí)際高度;
- body.scrollWidth=可視區(qū)域?qū)挾龋?
- body.clientHeight=內(nèi)容實(shí)際高度;
- body.clientWidth=可視區(qū)域?qū)挾龋?
- body.offsetHeight=內(nèi)容實(shí)際高度;
- body.offsetWidth=可視區(qū)域?qū)挾龋?/strong>
IE6在頁面內(nèi)容超出窗口大小時(shí)將寬度屬性scrollWidth、clientWidth、offsetWidth都解釋為內(nèi)容實(shí)際寬度。
上次的測試說明了document.body屬性并不會(huì)給我們返回預(yù)期的結(jié)果,比如我們用document.body.clientHeight原本想取
得“頁面可見區(qū)域高度”,可實(shí)際上返回的是“頁面實(shí)際內(nèi)容高度”。
那我們怎么辦呢?難道加上了文檔DTD類型之后就再也不能取到“可見區(qū)域高度”和“內(nèi)容實(shí)際寬度”等等屬性了嗎?
其實(shí),我們可以用document.documentElement代替document.body來獲取我們想要的結(jié)果
將代碼中的document.body替換為document.documentElement,再來看看各瀏覽器下的實(shí)際結(jié)果:
IE6:

IE7:

FF3:
部分內(nèi)容取自:http://blog.silentash.com/2008/06/document-body-attributes/
posted on 2010-06-01 08:55
紫蝶∏飛揚(yáng)↗ 閱讀(1060)
評(píng)論(0) 編輯 收藏