DOCTYPE元素詳解 完整版
來(lái)源:易賢網(wǎng) 閱讀:1081 次 日期:2016-06-22 11:26:58
溫馨提示:易賢網(wǎng)小編為您整理了“DOCTYPE元素詳解 完整版”,方便廣大網(wǎng)友查閱!

本文系統(tǒng)的講解DOCTYPE元素.同時(shí)查證了很多的資料.因?yàn)榛ヂ?lián)網(wǎng)上面的資料比較雜亂,所以經(jīng)過(guò)收集整理我進(jìn)行了重新定義.

一.概述

本文系統(tǒng)的講解DOCTYPE元素.同時(shí)查證了很多的資料.因?yàn)榛ヂ?lián)網(wǎng)上面的資料比較雜亂,所以經(jīng)過(guò)收集整理我進(jìn)行了重新定義.比如對(duì)于DOCTYPE元素的定義.主要分為基礎(chǔ)知識(shí)和高級(jí)知識(shí).基礎(chǔ)知識(shí)講解基本的DOCTYPE知識(shí). 高級(jí)知識(shí)很多來(lái)自網(wǎng)絡(luò)收集, 主要是實(shí)際應(yīng)用的一些技巧.

二.定義

DOCTYPE是文檔類(lèi)型(Document Type)的縮寫(xiě), <!DOCTYPE> 元素用于聲明一個(gè)頁(yè)面的文檔類(lèi)型定義(Document Type Declaration, 即DTD).此元素聲明位于文檔中的最前面的位置,處于 <html> 標(biāo)簽之前。通過(guò)確認(rèn)頁(yè)面的DTD,可以同時(shí)確定頁(yè)面使用哪種W3C規(guī)范(比如 HTML 或 XHTML 規(guī)范)。

三.W3C規(guī)范

W3C規(guī)范的正確翻譯應(yīng)該為W3C推薦(W3C Recommendations).很多設(shè)計(jì)師的眼里W3C就是標(biāo)準(zhǔn).但是許多人都是一知半解.下面列于了目前W3C規(guī)范中的HTML規(guī)范和XHTML規(guī)范,稍后會(huì)講解HTML和XHTML的關(guān)系:

W3C HTML 規(guī)范和時(shí)間線

規(guī)范 推薦
HTML 3.2 1997年1月14日
HTML 4.0 1998年5月24日
HTML 4.01 1999年12月24日

W3C XHTML 規(guī)范 和 時(shí)間線

規(guī)范 草案/提議 推薦
XHTML 1.0 2000 年 1 月 26 日  
XHTML 1.0 修訂版 2002 年 8 月 1 日  
XHTML 1.1 2001 年 5 月 31 日  
XHTML Modules 2001 年 4 月 10 日  
XHTML Modules 1.1 2006 年 7 月 5 日  
XHTML Basic 2000 年 12 月 19 日  
XHTML Basic 1.1 2006 年 7 月 5 日  
XHTML Events 2003 年 10 月 14 日  
XHTML Events 2 2007 年 2 月 16 日  
XHTML Print 2006 年 9 月 20 日  
XHTML Media Types 2002 年 8 月 1 日  
XForms 1.0 2003 年 10 月 14 日  
XForms 1.0 (SE) 2006 年 3 月 14 日  
XForms 1.1 2007 年 2 月 22 日  
XHTML 2.0 2006 年 7 月 26 日  
XLink 2001 年 6 月 27 日  
HLink 2002 年 9 月 13 日  

XHTML可以看成是最新的HTML規(guī)范, 是一項(xiàng)可從 HTML 4.01 平穩(wěn)遷移的 XML 應(yīng)用。W3C 把 HTML 4.01 重構(gòu)為 XML 的第一個(gè)步驟,導(dǎo)致了 XHTML 1.0 的誕生。XHTML 1.0 依賴于 HTML 4.01 標(biāo)簽所提供的語(yǔ)義。

四.規(guī)范與DTD

頁(yè)面文件通過(guò)<DOCTYPE>元素聲明不同的DTD, 來(lái)告知瀏覽器當(dāng)前頁(yè)面符合哪種HTML或者XHTML規(guī)范.下面只列舉HTML4.01和XHTML1.0兩種規(guī)范相關(guān)的DTD:

HTML

HTML 4.01 規(guī)定了三種文檔類(lèi)型:Strict、Transitional 以及 Frameset。

HTML Strict DTD

如果您需要干凈的標(biāo)記,免于表現(xiàn)層的混亂,請(qǐng)使用此類(lèi)型。請(qǐng)與層疊樣式表(CSS)配合使用:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "

http://www.w3.org/TR/html4/strict.dtd">

HTML Transitional DTD

Transitional DTD 可包含 W3C 所期望移入樣式表的呈現(xiàn)屬性和元素。如果您的讀者使用了不支持層疊樣式表(CSS)的瀏覽器以至于您不得不使用 HTML 的呈現(xiàn)特性時(shí),請(qǐng)使用此類(lèi)型:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

http://www.w3.org/TR/html4/loose.dtd">

Frameset DTD

Frameset DTD 應(yīng)當(dāng)被用于帶有框架的文檔。除 frameset 元素取代了 body 元素之外,F(xiàn)rameset DTD 等同于 Transitional DTD:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "

http://www.w3.org/TR/html4/frameset.dtd">

XHTML

XHTML 1.0 規(guī)定了三種 XML 文檔類(lèi)型:Strict、Transitional 以及 Frameset。

XHTML Strict DTD

如果您需要干凈的標(biāo)記,免于表現(xiàn)層的混亂,請(qǐng)使用此類(lèi)型。請(qǐng)與層疊樣式表(CSS)配合使用:

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

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

XHTML Transitional DTD

Transitional DTD 可包含 W3C 所期望移入樣式表的呈現(xiàn)屬性和元素。如果您的讀者使用了不支持層疊樣式表(CSS)的瀏覽器以至于您不得不使用 XHTML 的呈現(xiàn)特性時(shí),請(qǐng)使用此類(lèi)型:

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

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

XHTML Frameset DTD

當(dāng)您希望使用框架時(shí),請(qǐng)使用此 DTD!

<!DOCTYPE html

PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

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

五.DOCTYPE 元素語(yǔ)法

語(yǔ)法

HTML 頂級(jí)元素 可用性 "注冊(cè)//組織//類(lèi)型 標(biāo)簽//定義 語(yǔ)言""URL"

語(yǔ)法元素說(shuō)明

頂級(jí)元素:指定 DTD 中聲明的頂級(jí)元素類(lèi)型。這與聲明的 SGML 文檔類(lèi)型相對(duì)應(yīng)。 默認(rèn)為HTML。

可用性:指定正式公開(kāi)標(biāo)識(shí)符(FPI)是可公開(kāi)訪問(wèn)的對(duì)象還是系統(tǒng)資源。取值可以為PUBLIC或者SYSTEM.PUBLIC 默認(rèn)。表示可公開(kāi)訪問(wèn)的對(duì)象。SYSTEM表示系統(tǒng)資源,如本地文件或 URL。

注冊(cè):指定組織是否由國(guó)際標(biāo)準(zhǔn)化組織(ISO)注冊(cè)。

+為默認(rèn),表示組織名稱已注冊(cè)。

-表示組織名稱未注冊(cè)。Internet 工程任務(wù)組(IETF)和萬(wàn)維網(wǎng)協(xié)會(huì)(W3C)并非注冊(cè)的 ISO 組織。

組織:指定表明負(fù)責(zé)由 !DOCTYPE 聲明引用的 DTD 的創(chuàng)建和維護(hù)的團(tuán)體或組織的名稱,即 OwnderID。 IETF為IETF。W3C為W3C。

類(lèi)型:指定公開(kāi)文本類(lèi),即所引用的對(duì)象類(lèi)型。 默認(rèn)為DTD。

標(biāo)簽:指定公開(kāi)文本描述,即對(duì)所引用的公開(kāi)文本的唯一描述性名稱。后面可附帶版本號(hào)。默認(rèn)為HTML。

定義:指定文檔類(lèi)型定義。

Frameset 框架集文檔。

Strict 排除所有 W3C 專(zhuān)家希望逐步淘汰的代表性屬性和元素,因?yàn)闃邮奖硪呀?jīng)很完善了。

Transitional 包含除 frameSet 元素的全部?jī)?nèi)容。

語(yǔ)言:指定公開(kāi)文本語(yǔ)言,即用于創(chuàng)建所引用對(duì)象的自然語(yǔ)言編碼系統(tǒng)。該語(yǔ)言定義已編寫(xiě)為 ISO 639 語(yǔ)言代碼(大寫(xiě)兩個(gè)字母)。 EN 默認(rèn)。英語(yǔ)。

URL:指定所引用對(duì)象的位置。

六.檢查工具

如果要檢查你的頁(yè)面內(nèi)容是否符合在DOCTYPE中聲明的標(biāo)準(zhǔn),可以使用W3C提供的驗(yàn)證工具:

http://validator.w3.org/

七.DOCTYPE切換

現(xiàn)代瀏覽器包括不同的呈現(xiàn)模式,目的是既支持遵循W3C標(biāo)準(zhǔn)的網(wǎng)頁(yè),也支持為老式瀏覽器而設(shè)計(jì)的網(wǎng)頁(yè)。其中, Standards (標(biāo)準(zhǔn))模式(也就是嚴(yán)格呈現(xiàn)模式)用于呈現(xiàn)遵循最新標(biāo)準(zhǔn)的網(wǎng)頁(yè),而 Quirks (包容)模式(也就是松散呈現(xiàn)模式或者兼容模式)用于呈現(xiàn)為傳統(tǒng)瀏覽器而設(shè)計(jì)的網(wǎng)頁(yè)。另外,注意Mozilla/Netscape 6新增了一種 Almost Standards (近似標(biāo)準(zhǔn))模式,用于支持為標(biāo)準(zhǔn)的某個(gè)老版本而設(shè)計(jì)的網(wǎng)頁(yè)。

理論上,這應(yīng)該是一個(gè)非常直觀的切換。假如頁(yè)面的<!DOCTYPE>元素指出了頁(yè)面的遵循標(biāo)準(zhǔn)(比如XHTML1.0), 瀏覽器就會(huì)切換到Standards模式。假如沒(méi)有指定doctype,或者指定HTML 3.2以及更老的版本,瀏覽器就切換到Quirks模式。這樣一來(lái),瀏覽器既能正確顯示遵循標(biāo)準(zhǔn)的文檔,又不至于完全舍棄老式的、與標(biāo)準(zhǔn)不符的網(wǎng)頁(yè)。 但是會(huì)有下面幾種情況:

1.丟失的URL或者相對(duì)URL

在完整的doctype聲明中,要包括相應(yīng)的文檔類(lèi)型定義(DTD)文件的URL。如果URL丟失,或者指定的是一個(gè)相對(duì)路徑(而不是完全限定的Internet地址),大多數(shù)瀏覽器都會(huì)進(jìn)入Quirks模式,不管doctype聲明規(guī)定的是什么模式。

2.形式錯(cuò)誤的doctype

瀏覽器對(duì)doctype聲明的形式和格式非常敏感,如果不能識(shí)別一個(gè)形式錯(cuò)誤的doctype,就會(huì)強(qiáng)制進(jìn)入Quirks模式(建議將一個(gè)已知正確的doctype拷貝和粘貼到文檔中,而不是親自輸入它)。之所以出現(xiàn)形式錯(cuò)誤的doctype,一個(gè)常見(jiàn)的原因是在 doctype 的第一部分與URL之間缺少一個(gè)空格。將一個(gè)分兩行的doctype折疊成單獨(dú)一行,常常會(huì)丟失那個(gè)空格。

3.過(guò)渡期的 doctype

瀏覽器處理過(guò)渡期的doctype時(shí),最容易出現(xiàn)不一致的問(wèn)題。IE和Opera使用Standards模式;Netscape 6和舊版本的Safari使用Quirks模式;Netscape 7、Mozilla 1和新版本的Safari使用Netscape的Almost Standards模式,它是Standards模式的一個(gè)具有更好容錯(cuò)性的版本。

4.未知的 doctype

瀏覽器在處理不能識(shí)別的doctype時(shí),也存在不一致的現(xiàn)象。IE和Opera會(huì)進(jìn)入Standards模式;換言之,它假定不能識(shí)別的 doctype 是尚未在瀏覽器中集成的一個(gè)新標(biāo)準(zhǔn)。Netscape 6則相反,會(huì)在遇到不能識(shí)別的doctype時(shí)切換到Quirks模式。

doctype切換也許是讓瀏覽器進(jìn)入正確呈現(xiàn)模式并正確顯示網(wǎng)頁(yè)的一種有效手段,前提是你注意到了各種瀏覽器的不一致,并能積極主動(dòng)地避免各種問(wèn)題。

八.XHTML使用技巧

1.緊跟在上面 DOCTYPE 聲明之后的是一個(gè) XHTML 名字空間(namespace)聲明,放在增強(qiáng)的 <html> 元素中,寫(xiě)法為:

<html xmlns="http://www.w3.org/1999/xhtml">

2.由于 XHTML 1.0 頁(yè)面就是合法的 XML 文檔,而 XML 對(duì)于標(biāo)簽和屬性都是區(qū)分大小寫(xiě)的,為了簡(jiǎn)單起見(jiàn),XHTML 1.0 頁(yè)面中所有的標(biāo)簽和屬性都必須使用小寫(xiě)。

一些免費(fèi)的工具,例如 HTML Tidy(http://tidy.sourceforge.net/),可以幫助你把標(biāo)簽和屬性自動(dòng)轉(zhuǎn)換為小寫(xiě)。

3. 通過(guò)在 <head> 元素中添加一個(gè) <meta> 元素來(lái)聲明頁(yè)面中使用的語(yǔ)言。

<meta http-equiv="Content-Type" content="text/html; charset=gbk" />

4.在 XHTML 中,所有的屬性都必須要加上引號(hào)。

一些免費(fèi)的工具,例如 HTML Tidy(http://tidy.sourceforge.net/),可以幫助你自動(dòng)為所有的屬性加上引號(hào)。

5. 在 XHTML 中,所有的屬性都必須有值。

不能像在 HTML 4.0 中那樣寫(xiě):

<input type="checkbox" name="shirt" value="medium" checked>

而要寫(xiě)成:

<input type="checkbox" name="shirt" value="medium" checked="checked" />

6. 在 XHTML 中,所有的標(biāo)簽都必須關(guān)閉。

關(guān)閉標(biāo)簽有兩種方式,包含內(nèi)容的標(biāo)簽使用結(jié)束標(biāo)簽關(guān)閉,空標(biāo)簽在后面加上空格和"/"。例如:

<p>This is acceptable HTML and it is also valid XHTML.</p>

<img src="logo.gif" />

7. 不要在注釋內(nèi)容中使用"--" 。

"--" 只能使用在 XHTML 注釋的開(kāi)頭和結(jié)束,不能出現(xiàn)在注釋的內(nèi)容中。下面的寫(xiě)法都是不允許的:

<!--Invalid -- and so is the classic "separator" below. -->

<!------------------------------------>

8. 把所有的特殊符號(hào)進(jìn)行HTML編碼。

W3C 的 XHTML/CSS/DOM 這 3 個(gè)規(guī)范構(gòu)成了一個(gè)完整而嚴(yán)密的體系,我稱這 3 個(gè)規(guī)范為 Web 世界中"三位一體神的化身"。這 3 個(gè)規(guī)范分別代表了 Web 頁(yè)面的 structure(結(jié)構(gòu))、presentation(表現(xiàn))和 behaviour(行為) 3 部分。將 Web 頁(yè)面嚴(yán)格分為這 3 層,并且盡量使每一層的內(nèi)容相互獨(dú)立,有助于提高頁(yè)面的可重用性和模塊化程度,大幅降低頁(yè)面制作、維護(hù)和修改的成本。為了達(dá)到上述分層的目標(biāo),編寫(xiě)的 XHTML 中應(yīng)該只包含與 structure 相關(guān)的標(biāo)記(元素和屬性)。因此應(yīng)該習(xí)慣于使用 Strict 類(lèi)型的 DTD,盡快摒棄那些帶有表現(xiàn)含意的標(biāo)記(這些標(biāo)記在 HTML 4.0 規(guī)范中被標(biāo)識(shí)為 Deprecated 即"不提倡",并且會(huì)在 XHTML 以后的版本中被完全舍棄);盡快摒棄基于 table 做布局的老方法,采用完全的 CSS 布局。

更多信息請(qǐng)查看網(wǎng)頁(yè)制作
易賢網(wǎng)手機(jī)網(wǎng)站地址:DOCTYPE元素詳解 完整版
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢?yōu)闇?zhǔn)!
相關(guān)閱讀網(wǎng)頁(yè)制作

2025國(guó)考·省考課程試聽(tīng)報(bào)名

  • 報(bào)班類(lèi)型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專(zhuān)用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)