2014-02-18 51 views
2

大家好:「// W3C // DTD HTML 4.01」和「// W3C // DTD XHTML 1.0」有什麼區別?

我想要得到的網頁瀏覽器的autual高度,但我得到了有關W3C DTD HTML 4.01// W3C // DTC XHTML 1.0一些混亂,下面是我的問題的細節:

如果我使用W3C DTD HTML 4.01在頁頭的頂部,使用document.body.clientHeight,那麼我不能讓瀏覽器的全高:

 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test jQuery Height</title> 

     <script type="text/javascript" src="../lib/jquery-1.8.3.min.js"></script> 

     <script type="text/javascript"> 
     $(function(){ 
      var height=document.body.clientHeight; 
      alert(height); 
     }) 
     </script> 
    </head> 
    <body> 
     <div style="margin-left:30px;"> 
      <button>Start Select</button> 
      <button>Stop Select7lt;/button> 
     </div> 
    </body> 
    </html> 

但是,如果我改變// W3C // DTD HTML 4.01或使用文件.documentElement.clientHeight,那麼我能得到瀏覽器的實際高度:
1.使用// W3C // DTD HTML 4.01

 

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test jQuery Height</title> 

      <script type="text/javascript" src="../lib/jquery-1.8.3.min.js"></script> 

      <script type="text/javascript"> 
      $(function(){ 
       var height=document.body.clientHeight; 
      alert(height); 
     }) 
     </script> 
    </head> 
    <body> 
     <div style="margin-left:30px;"> 
      <button>Start Select</button> 
      <button>Stop Select7lt;/button> 
     </div> 
    </body> 
    </html> 

  1. 使用document.documentElement.clientHeight
 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html> 
    <head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Test jQuery Height</title> 

     <script type="text/javascript" src="../lib/jquery-1.8.3.min.js"></script> 

     <script type="text/javascript"> 
     $(function(){ 
      var height=document.documentElement.clientHeight; 
      alert(height); 
     }) 
     </script> 
    </head> 
    <body> 
     <div style="margin-left:30px;"> 
      <button>Start Select</button> 
      <button>Stop Select7lt;/button> 
     </div> 
    </body> 
    </html> 



所以,我的問題是什麼是「// W3C // DTD之間的區別HTML 4.01「和」// W3C // DTD XHTML 1.0「?
任何幫助將不勝感激!

+1

如果可以的話,採用HTML5-'<!DOCTYPE html>'是個好主意。 –

+0

檢索clientHeight和clientWidth的問題似乎更像是一個瀏覽器問題。你正在使用哪種瀏覽器? –

+0

那麼,我們的團隊希望能夠對Chrome,Firefox,IE9 + **進行罰款,我認爲應該有一個通用的解決方案。 – lucumt

回答

2

「// W3C // DTD HTML 4.01」和「// W3C // DTD XHTML 1.0」之間的區別在於前者在後者中與「XHTML 1.0」相對,「HTML 4.01」相反。

你實際觀察到。這兩個文檔類型聲明的區別

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

前者看跌期權的瀏覽器爲「標準模式」,而後者則使他們「怪癖模式「。在quirks mode,奇怪的事情可能會發生。這可能包括寬度和高度的非標準計算。

除非這是關於依賴怪癖模式的遺留頁面,否則應該使用「標準模式」並按規範使用CSS和DOM。

1

下面是這兩個文件標準比較不錯:http://www.w3.org/TR/xhtml1/diffs.html

簡而言之:與XHTML,你必須遵循XML結構,就像任何其他的XML文檔。 HTML4 Transitional更加靈活,並允許在標籤中使用附加屬性或跳過某些屬性。

編輯:

  • document.documentElement中似乎在IE標準模式下工作
  • document.body的在IE怪癖模式和所有其他的瀏覽器我通常使用。

document.body比另一個更具標準性。但它不涉及(X)HTML標準。

2

HTML 4.01嚴格的文檔類型即「 - // W3C // DTD HTML 4.01 //」,雖然不允許任何表示標記或不贊成使用的元素(例如字體元素),但仍針對HTML 4.01規範進行驗證,或要使用的框架集。它驗證寬鬆的HTML樣式標記,例如最小化屬性和非引用屬性(例如required,而不是required =「required」)

HTML 4.01過渡文檔類型即「 - // W3C // DTD HTML 4.01 Transitional // EN「根據HTML 4.01規範進行驗證。它允許一些演示標記和不贊成的元素(如字體元素),但不允許框架集。同樣,它驗證了寬鬆的HTML樣式標記

這些是HTML 4.01 doctypes的精確XHTML 1.0等效項,即「 - // W3C // DTD XHTML 1.0 Transitional // EN」或「 - // W3C // DTD XHTML 1.0 Strict // EN「,因此它們在功能上是相同的,只是它們不會驗證寬鬆的HTML樣式標記:它們都需要格式良好的XML。

相關問題