zoukankan      html  css  js  c++  java
  • 什么是dtd文件,为什么需要

    DTD为英文Document Type Definition,中文意思为“文档类定义”。DTD肩负着两重任务:一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码。也许你会问它们居然有这样的能力?

    如是你是一个个网页制作者,你会很清楚地知道一个HTML文档的基本结构可分为两个主要部分;

    [html] view plain copy
    1. <html>  
    2.   
    3.     <head>  
    4.   
    5.       头部信息  
    6.   
    7.     </head>  
    8.   
    9.     <body>  
    10.   
    11.       可视内容  
    12.   
    13.     </body>  
    14.   
    15. </html>  



    上面的代码你是再熟悉不过的了。但你知道下面的代码既是正确的又是错误的吗?

    <Palign="center">这是一个居中段落</P>

    在XHTML中,标记是区分大小写的,上面的代码毫无意义。可在HTML中它是一个居中段落。浏览器是怎样处理这种情况呢?难道浏览器认为你写的是HTML,然后把它作为一个一个居中段落显示?如是你写的是XHTML呢,它将是一段不可显示的代码!浏览器是怎样知道你用的是什么标记语言然后正确对待这段代码呢?

    这就是DTD的工作了。一个DTD应该放在每一个文档的第一行(包括空白).这样正确地放置,你的DTD才能告诉浏览器的用的是什么标记语言。在通常情况下,如果你编写的是正确代码,并拥有一个合适的DTD,浏览器将会根据W3C的标准显示你的代码。

    如果说你没有使用DTD,你将很难预测浏览器是怎样显示你的代码,仅仅在同一浏览器就有不同的显示效果。尽管你的网页做得非常飘亮,要是没有使用DTD,你的努力也是白费的。因此,一个DTD是必不可少的。

    如果你正在做网页,你的DTD应该反映出你用的是什么标记语言。下面是一个DTD列表,你应该使用其中之一。

    • XHTML 1.1

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN""http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

    • XHTML1.0 StrictDTD(严格的文档类定义):要求严格的DTD,你不能使用表现标识和属性,和CSS一同使用。完整代码如下:
           <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
      
    • XHTML1.0 TransitionalDTD(过渡的文档类定义):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:
          <!DOCTYPE html    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      
    • XHTML1.0 FramesetDTD(框架集文档类定义):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需要采用这种DTD。完整代码如下:
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
      
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">            
      
       
    • HTML 4.01 Strict DTD(严格的文档类定义)不能包含已过时的元素(或属性)和框架元素。对于使用了这类DTD的文档,使用如下文档声明:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   
      
                 "http://www.w3.org/TR/html4/strict.dtd">  
      
    • HTML 4.01 TransitionalDTD(过渡的文档类定义)能包含已过时的元素和属性但不能包含框架元素。。对于使用了这类DTD的文档,使用如下文档声明:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      
                    "http://www.w3.org/TR/html4/loose.dtd">  
      
    • HTML 4.01 FramesetDTD(框架集文档类定义)。能包含已过时的元素和框架元素。。对于使用了这类DTD的文档,使用如下文档声明:
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
      
                   "http://www.w3.org/TR/html4/frameset.dtd">
      
    • HTML 3.2

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2Final//EN">

    • HTML 2.0

      <!DOCTYPE html PUBLIC "-//IETF//DTD HTML2.0//EN">

    下面是一个合法的HTML文档。

    [html] view plain copy
    1. <!DOCTYPE html    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
    2.   
    3.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    4.   
    5. <html>  
    6.   
    7.     <head>  
    8.   
    9.       头部信息  
    10.   
    11.     </head>  
    12.   
    13.     <body>  
    14.   
    15.       可视内容  
    16.   
    17.     </body>  
    18.   
    19. </html>  
  • 相关阅读:
    Leetcode 18. 4Sum
    Leetcode 15. 3Sum
    Leetcode 16. 3Sum Closest
    String类型的理解
    求字符串中某个字符出现的次数
    用StringBuilder来实现经典的反转问题
    String/StringBuilder 类 用对象数组实现登录注册功能
    String/StringBuilder 类 统计字符串中字符出现的次数
    String/StringBuilder 类 判断QQ号码
    C++ 面向对象: I/O对象的应用
  • 原文地址:https://www.cnblogs.com/shuaiandjun/p/5440618.html
Copyright © 2011-2022 走看看