document.documentElement.clientHeight 與 document.body.clientHeight用來獲取頁面可視高度我覺得有點問題。這兩個應該不是一個東西。
頁面中加了:<!DOCTYPE html>
很明顯在谷歌瀏覽器中兩個值不是一個概念。
頁面中不加:<!DOCTYPE html>
發現兩個的值掉了個個!
所以這里有幾個問題要搞明白:
1.<!DOCTYPE html>是什么
<!DOCTYPE> 聲明不是 HTML 標簽;它是指示 web 瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。
<!DOCTYPE html>這個的意思就是告訴瀏覽器頁面是html。並且使用html5最新規范來處理。
在 HTML 4.01 中有三種 <!DOCTYPE> 聲明。在 HTML5 中只有一種:<!DOCTYPE html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2.document.body與document.documentElement的含義是什么
document.body指的是html節點中的body節點
document.documentElement值得是根節點,即html節點。
3.document.documentElement.clientHeight 與 document.body.clientHeight有時候相等的問題
所以這里我就搞不明白有些人這么寫的意思了??:var a = document.documentElement.clientHeight || document.body.clientHeight
要想等是不?我們只需要設置body,html{ height: 100%}
其實這么設置的想法我知道是啥,就是想高度與內容一致。
可是這里就有個問題了,
這里的100%是一屏的高度。就會出現這樣的斷層。
如下:

當有滾動條的時候,這樣的設置應該是不合理的!
百度首頁因為是一屏不會出現滾動條,所以兩個值是相等的。

結論:個人認為,document.documentElement.clientHeight用來獲取頁面可視高度更加准確。