document.documentElement與document.body

關(guān)于獲取各種瀏覽器可見窗口大小的一點(diǎn)點(diǎn)研究

<script>
function getInfo()
{
var s = "";
s = " 網(wǎng)頁可見區(qū)域?qū)挘? document.body.clientWidth;
s = " 網(wǎng)頁可見區(qū)域高:" document.body.clientHeight;
s = " 網(wǎng)頁可見區(qū)域?qū)挘? document.body.offsetWidth " (包括邊線和滾動(dòng)條的寬)";
s = " 網(wǎng)頁可見區(qū)域高:" document.body.offsetHeight " (包括邊線的寬)";
s = " 網(wǎng)頁正文全文寬:" document.body.scrollWidth;
s = " 網(wǎng)頁正文全文高:" document.body.scrollHeight;
s = " 網(wǎng)頁被卷去的高(ff):" document.body.scrollTop;
s = " 網(wǎng)頁被卷去的高(ie):" document.documentElement.scrollTop;
s = " 網(wǎng)頁被卷去的左:" document.body.scrollLeft;
s = " 網(wǎng)頁正文部分上:" window.screenTop;
s = " 網(wǎng)頁正文部分左:" window.screenLeft;
s = " 屏幕分辨率的高:" window.screen.height;
s = " 屏幕分辨率的寬:" window.screen.width;
s = " 屏幕可用工作區(qū)高度:" window.screen.availHeight;
s = " 屏幕可用工作區(qū)寬度:" window.screen.availWidth;


s = " 你的屏幕設(shè)置是 " window.screen.colorDepth " 位彩色";
s = " 你的屏幕設(shè)置 " window.screen.deviceXDPI " 像素/英寸";
//alert (s);
}
getInfo();
</script>
在本地測試當(dāng)中:
  • 在IE慨飘、FireFox译荞、Opera下都可以使用
    document.body.clientWidth
    document.body.clientHeight
    即可獲得,很簡單圈膏,很方便篙骡。
    而在公司項(xiàng)目當(dāng)中:
  • Opera仍然使用
    document.body.clientWidth
    document.body.clientHeight
  • 可是IE和FireFox則使用
    document.documentElement.clientWidth
    document.documentElement.clientHeight
    原來是W3C的標(biāo)準(zhǔn)在作怪啊

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果在頁面中添加這行標(biāo)記的話 在IE中:
document.body.clientWidth ==> BODY對(duì)象寬度
document.body.clientHeight ==> BODY對(duì)象高度
document.documentElement.clientWidth ==> 可見區(qū)域?qū)挾?br> document.documentElement.clientHeight ==> 可見區(qū)域高度

  • 在FireFox中:
    document.body.clientWidth ==> BODY對(duì)象寬度
    document.body.clientHeight ==> BODY對(duì)象高度
    document.documentElement.clientWidth ==> 可見區(qū)域?qū)挾?br> document.documentElement.clientHeight ==> 可見區(qū)域高度
  • 在Opera中:
    document.body.clientWidth ==> 可見區(qū)域?qū)挾?br> document.body.clientHeight ==> 可見區(qū)域高度
    document.documentElement.clientWidth ==> 頁面對(duì)象寬度(即BODY對(duì)象寬度加上Margin寬)
    document.documentElement.clientHeight ==> 頁面對(duì)象高度(即BODY對(duì)象高度加上Margin高)

而如果沒有定義W3C的標(biāo)準(zhǔn)慎皱,則

  • IE為:
    document.documentElement.clientWidth ==> 0
    document.documentElement.clientHeight ==> 0
  • FireFox為:
    document.documentElement.clientWidth ==> 頁面對(duì)象寬度(即BODY對(duì)象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對(duì)象高度(即BODY對(duì)象高度加上Margin高)
  • Opera為:
    document.documentElement.clientWidth ==> 頁面對(duì)象寬度(即BODY對(duì)象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對(duì)象高度(即BODY對(duì)象高度加上Margin高)

注:

Document 對(duì)象

當(dāng)瀏覽器載入HTML 文檔茫多,它就會(huì)成為 Document 對(duì)象忽刽。

Document對(duì)象是HTML文檔的根節(jié)點(diǎn)。

Document對(duì)象使我們可以從腳本中對(duì) HTML 頁面中的所有元素進(jìn)行訪問今膊。

提示:Document 對(duì)象是 Window 對(duì)象的一部分伞剑,可通過 window.document 屬性對(duì)其進(jìn)行訪問。

通過document訪問頁面內(nèi)的元素恕刘,document.documentElement返回html dom中的root 節(jié)點(diǎn) 即<html>,document.body返回html dom中的body節(jié)點(diǎn) 即<body>坷澡。

image

所以document.documentElement是<html></html>元素频敛,document.body是<body></body>元素馅扣。如果發(fā)現(xiàn)兩個(gè)高度不一樣差油,是css設(shè)置的問題,你的html高度不一定高于body厌殉。

用body查看公罕,其中clientHeight即為body的css高度

image

用documentElement楼眷,其中clientHeight即為html的css高度

image

網(wǎng)上很多說document.documentElement.clientHeight或者document.body.clientHeight為可見高度罐柳,其實(shí)這要看body或者h(yuǎn)tml標(biāo)簽的css怎么設(shè)的张吉,當(dāng)body的height(css設(shè)定)一開始就和scrollHeight相等時(shí)催植,是不能作為可見高度的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伦忠,一起剝皮案震驚了整個(gè)濱河市昆码,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赋咽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舌菜,死亡現(xiàn)場離奇詭異日月,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)爱咬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門精拟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜂绎,“玉大人笋鄙,你說我怎么就攤上這事〖溃” “怎么了陨倡?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵兴革,是天一觀的道長蜜唾。 經(jīng)常有香客問我灵妨,道長,這世上最難降的妖魔是什么泌霍? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮积暖,結(jié)果婚禮上夺刑,老公的妹妹穿的比我還像新娘分别。我一直安慰自己,他們只是感情好沼填,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布坞笙。 她就那樣靜靜地躺著薛夜,像睡著了一般版述。 火紅的嫁衣襯著肌膚如雪却邓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音螟蝙,去河邊找鬼胰默。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牵署,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播青责,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼脖隶,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了婉称?” 一聲冷哼從身側(cè)響起王暗,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铐姚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體之众,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棺禾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年峭跳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膘婶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛀醉,死狀恐怖悬襟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拯刁,我是刑警寧澤脊岳,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站垛玻,受9級(jí)特大地震影響割捅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帚桩,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一亿驾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧账嚎,春花似錦颊乘、人聲如沸乏悄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至较解,卻和暖如春姥敛,著一層夾襖步出監(jiān)牢的瞬間彤敛,已是汗流浹背玄糟。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工筒狠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雇庙,地道東北人疆前。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓书释,卻偏偏與公主長得像爆惧,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叔收,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容