DTD(Document Type Definition)是一個XML文檔,解釋了哪些標簽、屬性或值對于HTML的一個特定類型是有效的。HTML遵循一定的規則。這些規則包含在一個文檔類型定義(Document Type Definition)文件中,或者如大家所知的DTD。每一個HTML版本,都有一個對應的DTD。現在你可能會問:“所有這些和CSS又有什么關系呢?”
如果想讓網頁中的所有內容都在網頁瀏覽器上正確、一致地顯示,就得告訴網頁瀏覽器你正使用HTML或者XHTML的哪個版本,包括一個網頁開頭處的文檔類型聲明(doctype declaration)是什么意思。這個文檔類型聲明是在HTML文件的第一行,不僅定義你正使用的HTML版本(比如HTML 4.01 Transitional),而且指向網頁中適當的DTD文件。當鍵錯文檔聲明時,你會使大部分瀏覽器進入一個叫怪異模式(Quirks Mode)(譯注1)的警告狀態。
怪異模式(Quirks Mode)是瀏覽器制造商為使他們的軟件運行起來就像大約1999年(Netscape 4和Internet Explorer 5時代)時的瀏覽器所采用的方法。如果一個現代瀏覽器遇到一張沒有正確文檔類型的網頁,它就會以為:“嗯,這張網頁一定是很早很早以前用HTML編輯器寫的。我得假裝自己是一個真正很舊的瀏覽器來顯示網頁,就像那些bug重重的舊瀏覽器所顯示的那樣。”這就是為什么當沒有一個正確的文檔類型時,你用CSS進行樣式設置的可愛網頁,可能看起來并不像它根據當前的標準所應該顯示的樣子。當你在瀏覽器上檢測時,無意中用怪異模式(Quirks Mode)瀏覽到你的網頁,你可能會停止嘗試去修正與不正確的文檔類型有關、而不是不正當使用HTML或者CSS所引起的顯示問題。
所幸的是,獲得正確的文檔類型很簡單。你所要知道的就是正在使用哪個HTML版本。目前最流行的HTML和XHTML的版本是HTML 4.01 Transitional和XHTML 1.0 Transitional。這些HTML類型仍然讓你使用展示型的標簽,如標簽,在這方面還提供一個從舊版HTML到新版HTML的過渡:更嚴格的HTML和XHTML標簽。雖然最好不要使用這些標簽,但它們在Transitional版中仍然起作用,因此你可以根據自己的情況,逐步淘汰這些舊式標簽。在嚴格版的HTML和XHTML中,有些舊式標簽根本不起作用。
注意:一般來說,HTML和XHTML的嚴格版均不接受僅使網頁展現效果好看的標簽和屬性,如標簽和一個段落的置中屬性。它們也不接受一些曾經流行的屬性,比如一個鏈接的目標屬性——讓你在一個新窗口中打開鏈接。