scrollHeight,clientHeight,offsetHeight在火狐、IE、谷歌瀏覽器下的區別


document.body是DOM中Document對象里的body節點, document.documentElement是文檔對象根節點(html)的引用。

以下內容在<!DOCTYPE html>下測試,均為親測結果~

瀏覽器版本分別是:IE11、Firefox 53.0.3(64位)、chrome 58.0.3029.110 (64-bit) 

測試程序js部分代碼:

<style type="text/css">
#one{border:10px solid black;  padding:5px;  margin:10px;};   /*本次測試是基於左邊代碼的body標簽樣式,one是body標簽的id*/
</style>

1.document.documentElement.scrollHeight與document.body.scrollHeight比較

IE瀏覽器下:

      h1=document.documentElement.scrollHeight;   //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h2=document.body.scrollHeight;                     //body標簽下包括padding在內的樣式實際高度,不包括body標簽的border,margin;

       計算結果:h1=h2+上下border(body的邊框)+上下margin(body的內邊距);

Firefox瀏覽器下:

      h1= document.documentElement.scrollHeight;  //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h2=document.body.scrollHeight;                    //body標簽下包括padding在內的樣式實際高度,不包括body標簽的border,margin;

     計算結果: h1=h2+上下border(body的邊框)+上下margin(body的內邊距);

 //  Firefox瀏覽器與IE瀏覽器兩種情況下計算方法均相同,Chrome瀏覽器的計算方式有點差別

Chrome瀏覽器下:

      h1=document.documentElement.scrollHeight;      //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h2=document.body.scrollHeight;                         

     計算結果:h1=h2;

 

 2.document.documentElement.clientHeight與document.body.clientHeight比較 

IE瀏覽器下:

      h3=document.documentElement.clientHeight;   //網頁內容可見部分的高度,隨着瀏覽器窗口大小的變化而變化

      h4=document.body.clientHeight;                     //body標簽下內容的實際高度,包括body標簽的padding,不包括body標簽的border,margin,;     

        

Firefox瀏覽器下:

      h3= document.documentElement.clientHeight;   //網頁內容可見部分的高度,隨着瀏覽器窗口大小的變化而變化

      h4=document.body.clientHeight;                      //body標簽下內容的實際高度,包括body標簽的padding,不包括body標簽的border,margin,;  

   

 //  Firefox瀏覽器與IE瀏覽器兩種情況下計算方法均相同,Chrome瀏覽器的計算方式有點差別

Chrome瀏覽器下:

      h3=document.documentElement.clientHeight;      //網頁內容可見部分的高度,隨着瀏覽器窗口大小的變化而變化 

      h4=document.body.clientHeight;                        //body標簽下內容的實際高度,包括body標簽的padding,不包括body標簽的border,margin,;    

    

3.document.documentElement.offsetHeight與document.body.offsetHeight比較 

  

IE瀏覽器下:

      h5=document.documentElement.offsetHeight;   //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h6=document.body.offsetHeight;                     //body標簽下內容的實際高度,包括body標簽的border,padding,不包括margin;   

        計算結果:h5=h6+margin(body標簽的);

Firefox瀏覽器下:

      h5= document.documentElement.offsetHeight;   //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h6=document.body.offsetHeight;                      //body標簽下內容的實際高度,包括body標簽的border,padding,不包括margin;

     計算結果:h5=h6+margin(body標簽的);

 //  Firefox瀏覽器與IE瀏覽器兩種情況下計算方法均相同,Chrome瀏覽器的計算方式有點差別

Chrome瀏覽器下:

      h5=document.documentElement.offsetHeight;      //html標簽下內容的實際高度,包括body標簽的border,margin,padding;

      h6=document.body.offsetHeight;                        //body標簽下內容的實際高度,包括body標簽的border,padding,不包括margin;  

    計算結果:h5=h6+margin(body標簽的);

以上三個瀏覽器,當body標簽的margin為0時,h5=h6;

 


免責聲明!

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



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