1. 程式人生 > >什麼是dtd檔案,為什麼需要

什麼是dtd檔案,為什麼需要

DTD為英文Document Type Definition,中文意思為“文件類定義”。DTD肩負著兩重任務:一方面它幫助你編寫合法的程式碼,另一方面它讓瀏覽器正確地顯示器程式碼。也許你會問它們居然有這樣的能力?

如是你是一個個網頁製作者,你會很清楚地知道一個HTML文件的基本結構可分為兩個主要部分;

<html>

    <head>

      頭部資訊

    </head>

    <body>

      可視內容

    </body>

</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文件。

<!DOCTYPE html    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

    <head>

      頭部資訊

    </head>

    <body>

      可視內容

    </body>

</html>