document.documentElement.clientHeight 與 document.body.clientHeight(杜絕千篇一律的抄襲!!)


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用來獲取頁面可視高度更加准確。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM