2014-02-18 3 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-''. –

+0

Проблема с получением вашего clientHeight и clientWidth, похоже, больше связана с браузером. Какой браузер вы используете? –

+0

Ну, наша команда надеется, что она может работать штрафы за ** Chrome, Firefox, IE9 + **, я думаю, что для этого должно быть общее решение. – lucumt

ответ

2

Разница между «// W3C // DTD HTML 4.01» и «// W3C // DTD XHTML 1.0» заключается в том, что первый имеет «HTML 4.01» как противоположный «XHTML 1.0» в последнем.

То, что вы на самом деле наблюдается разница между декларациями типа на два документа

<!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 ". В quirks mode странные вещи могут и произойдут. Это может включать нестандартный расчет ширины и высоты.

Если это не о старой странице, которая основана на режиме quirks, вы должны использовать «режим стандартов» и использовать спецификации CSS и DOM по спецификациям.

1

Вот хорошее сравнение этих двух стандартов документа: http://www.w3.org/TR/xhtml1/diffs.html

Короче говоря: с XHTML, вы должны следовать структуре XML, так же, как с любой другой документ XML. HTML4 Transitional более гибкий и позволяет, например, использование дополнительных атрибутов в тегах или пропуски некоторых атрибутов.

EDIT:

  • document.documentElement, кажется, работает в стандартном режиме IE
  • document.body в IE режиме и все другие браузеры я обычно использую причуды.

document.body более стандартный, чем другой. Но это не относится к стандарту (X) HTML.

2

Строгий тип документа HTML 4.01, т. Е. «- // W3C // DTD HTML 4.01 //», проверяет спецификацию HTML 4.01, хотя он не позволяет разметки или устаревшие элементы презентации (например, элементы шрифта) или наборов фреймов, которые будут использоваться. Он проверяет разметку HTML-стиля, например, минимизированные атрибуты и нециклированные атрибуты (например, требуется, а не обязательно = «требуется»)

Тип переходного документа HTML 4.01, т. Е. «- // W3C // DTD HTML 4.01 Transitional // EN "проверяет соответствие спецификации HTML 4.01. Он допускает некоторые разметки представления и устаревшие элементы (такие как элементы шрифта), но не фреймы. Опять же, он проверяет размытую разметку HTML-стиля

Это точные эквиваленты XHTML 1.0 в отношении HTML 4.01, т. Е. «- // W3C // DTD XHTML 1.0 Transitional // EN» или «- // W3C // DTD XHTML 1.0 Strict // EN ", мы обсуждали выше, поэтому функционально они одинаковы, за исключением того, что они не будут проверять разметку HTML-стиля: все это должно быть хорошо сформированным XML.

Смежные вопросы