“// W3C // DTD HTML 4.01”和“// W3C // DTD XHTML 1.0”有什么区别?

时间:2014-02-18 06:52:03

标签: html w3c dtd

大家好:

我想获得网络浏览器的自动高度,但我对 W3C DTD HTML 4.01 // W3C感到困惑// DTC XHTML 1.0 ,下面是我的问题详情:

如果我在页眉顶部使用 W3C DTD HTML 4.01 并使用 document.body.clientHeight < / strong>,然后我无法获得浏览器的全部高度:

<!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>

但是,如果我更改为 // W3C // DTD HTML 4.01 或使用 document.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
  2. <!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”之间有什么区别?
    任何帮助都将不胜感激!

3 个答案:

答案 0 :(得分: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模式的遗留页面,否则您应该使用“标准模式”并按规范使用CSS和DOM。

答案 1 :(得分: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样式标记

这些是HTML 4.01 doctypes的确切XHTML 1.0等价物,即“ - // W3C // DTD XHTML 1.0 Transitional // EN”或“ - // W3C // DTD XHTML 1.0 Strict // EN”我们在上面讨论过,在功能上它们是相同的,除了它们不会验证松散的HTML样式标记:它都需要格式良好的XML。

答案 2 :(得分:1)

以下是这两个文件标准的良好比较:http://www.w3.org/TR/xhtml1/diffs.html

简而言之:使用XHTML,您必须遵循XML结构,就像使用任何其他XML文档一样。 HTML4 Transitional更灵活,允许例如在标签中使用其他属性或跳过某些属性。

编辑:

  • document.documentElement似乎在IE标准模式下工作
  • 在IE怪癖模式下的document.body以及我经常使用的所有其他浏览器。

document.body更像是一个标准而不是另一个。但它与(X)HTML标准无关。