將想法與焦點(diǎn)和您一起共享

網(wǎng)站建設中XHTML、DOCTYPE和Web標準的基礎知識發(fā)布者:本站     時(shí)間:2022-04-04 20:04:50

Web 標準使您能通過(guò)最少的工作,生成可被最廣大受眾訪(fǎng)問(wèn)的 Web 站點(diǎn)。Web 標準的承諾是:只需設計頁(yè)面一次,即可讓該頁(yè)以完全相同的方式在任何現代的瀏覽器中顯示和工作。例如,在按照標準生成以后,旨在在 Microsoft Internet Explorer 中以某種方式顯示的頁(yè)可在其他瀏覽器(如,Mozilla Firefox、Netscape Navigator、Opera、Camino 和 Safari)中以相同的方式顯示,而無(wú)需完成任何額外的工作。

Web 標準的一個(gè)額外好處是 ― 使 Web 站點(diǎn)更易于為殘疾人士訪(fǎng)問(wèn)。這是一個(gè)范圍廣泛的受眾群體,包括視力衰退的中年人士,剛剛在滑雪時(shí)跌斷胳膊的人士,以及完全失明的人士等。使用標準可避免無(wú)意中阻止那些具有暫時(shí)性或永久性身體殘疾的人士訪(fǎng)問(wèn) Web 頁(yè)。

HTML 在正式的場(chǎng)合已經(jīng)過(guò)時(shí)了。World Wide Web Consortium (W3C) 于 2000 年 6 月 26 日發(fā)布了 XHTML 的第一個(gè)版本作為推薦標準。XHTML 標準的目標是取代 HTML。按照 W3C 的說(shuō)法,“XHTML 是 HTML 的繼承者”(http://www.w3.org/MarkUp/)。

XHTML 標準的制定者具有兩大目標:

在文檔結構和表示形式之間創(chuàng )建更明顯的分離。 
將 HTML 重新表示為 XML 的應用程序。 
為了實(shí)現第一個(gè)目標,W3C 一直在堅定地從 HTML 中刪除純粹描述性的元素和屬性(他們是從 HTML 4.0 開(kāi)始這一過(guò)程的)。例如,XHTML 1.0 Strict 不包含諸如 <font> 標記之類(lèi)的元素或諸如 bgcolor 屬性之類(lèi)的屬性,因為這些元素和屬性完全用于描述文檔的外觀(guān),它們與文檔的結構沒(méi)有任何關(guān)系。

W3C 一直在努力使 Web 站點(diǎn)設計人員和開(kāi)發(fā)人員摒棄特定標記應當具有特定外觀(guān)這一觀(guān)念。例如,您可能會(huì )認為 <h1> 標記(標題標記)的用途是在頁(yè)中呈現大的加粗文本。這實(shí)際上是錯的。<h1> 標記用來(lái)在文檔中標記標題而不是其他任何東西。如何呈現標題標記由瀏覽器確定。視力衰退的人士使用的屏幕閱讀器可能利用抑揚頓挫的聲音來(lái)大聲朗讀標題標記的內容。不支持多個(gè)字體大小的 PDA 可能用閃爍文本呈現標題標記的內容。

您不應當試圖使用諸如 <h1> 標記之類(lèi)的頁(yè)元素來(lái)控制 Web 頁(yè)的外觀(guān)。相反,您應當通過(guò)使用層疊樣式表來(lái)指示 Web 頁(yè)的外觀(guān)。而且,您所使用的層疊樣式表應當是外部 層疊樣式表。請使用標記和屬性來(lái)標記文檔的結構,而使用樣式表來(lái)控制文檔的表示形式。

XHTML 的第二個(gè)目標是迫使 HTML 開(kāi)發(fā)人員遵守更為嚴格的 XML 規則。按照 W3C 的說(shuō)法,“XHTML 1.0 是 HTML 4.01 的作為 XML 1.0 應用程序的修訂”(http://www.w3.org/MarkUp/)。換句話(huà)說(shuō),使用 XHTML 生成 Web 頁(yè)時(shí),實(shí)際上是在創(chuàng )建 XML 文檔。

XML 文檔具有比 HTML 文檔更嚴格的語(yǔ)法。例如,XML 區分大小寫(xiě),所有 XML 屬性都必須放在引號內,而且 XML 標記不能重疊。強迫 Web 站點(diǎn)開(kāi)發(fā)人員和設計人員遵守有更高要求的語(yǔ)言規則有很多好處。

好處之一,用 XHTML 標記編寫(xiě)的頁(yè)具有更高的跨瀏覽器、跨設備和跨操作系統兼容性。如果在瀏覽器中打開(kāi)傳統的 HTML 頁(yè),瀏覽器將千方百計地呈現該頁(yè)。瀏覽器將試圖呈現該頁(yè),即使您的 HTML 一團糟。例如,Internet Explorer(以及 Firefox 和 Opera)能夠很好地顯示下面的 HTML 頁(yè)。

<i><B>this is bold and italic</I> and this is bold </body></HTML>Internet Explorer 會(huì )恰當地顯示該頁(yè) ― 即使該頁(yè)缺少 <html> 和 <body> 開(kāi)始標記,<b> 標記不具有匹配的結束標記,并且開(kāi)始和結束 <i> 標記的大小寫(xiě)不一致。所有主要的瀏覽器都能適應幾乎任何 HTML 標記“混合物”,并且不顧一切地呈現一些內容。

瀏覽器的這種適應行為是危險的,因為不同的瀏覽器(或相同瀏覽器的將來(lái)版本,或在不同操作系統上運行的相同瀏覽器)可能以不同方式呈現錯亂的 HTML。實(shí)際上,對于最新版本的 Internet Explorer、Mozilla Firefox 和 Opera 而言,它們呈現無(wú)效 HTML 的方式驚人地一致。但是,一旦開(kāi)始違反游戲規則,就不會(huì )得到任何保證。

然而,如果用 XHTML 的更嚴格的規則編寫(xiě) Web 頁(yè),那么 Web 頁(yè)就更有可能以一致的方式與當前瀏覽器協(xié)作,并且它們將繼續與當前瀏覽器的未來(lái)新版本協(xié)作。對于任何公司而言,幾乎都不具備針對每個(gè)瀏覽器、在每個(gè)操作系統和每個(gè)設備上測試其 Web 站點(diǎn)的資源。如果按照 Web 標準編寫(xiě)頁(yè)面,那么就不必具有這樣的資源。

XHTML 標準的版本

有三個(gè)版本的 XHTML 1.0,它們分別對應三個(gè)版本的 HTML 4.01:

XHTML 1.0 Transitional 
XHTML 1.0 Strict 
XHTML 1.0 Frameset 
XHTML 1.0 Transitional 包含 HTML 4.01 Transitional 中的全部標記和屬性。引入 XHTML 1.0 Transitional 標準的目的是,使現有 HTML 設計人員和開(kāi)發(fā)人員無(wú)需經(jīng)歷太多的痛苦就能遷移到 XHTML。

XHTML 1.0 Strict 與 XHTML 1.0 Transitional 的不同之處在于,它在文檔結構和表示形式之間實(shí)施了一種更為明顯的分離。與 XHTML 1.0 Transitional 不同,XHTML 1.0 Strict 強迫您使用層疊樣式表來(lái)控制頁(yè)的外觀(guān)。

XHTML 1.0 Frameset 文檔意在成為使用 <frameset> 標記將瀏覽器劃分為多個(gè)框架的文檔(XHTML 1.0 Transitional 和 Strict 頁(yè)不能包含 <frameset> 標記)。

W3C 還發(fā)布了 XHTML 1.1 以作為推薦標準(2001 年 5 月 31 日)。XHTML 1.1 非常類(lèi)似于 XHTML 1.0 Strict。二者的主要區別在于,可以用附加模塊擴展 XHTML 1.1 以便支持新元素。例如,可以生成特定的 XHTML 1.1 頁(yè),該頁(yè)還包含 MathML(數學(xué)標記語(yǔ)言)、SVG(可伸縮向量語(yǔ)言)或創(chuàng )建的自定義模塊中的元素。

最后,W3C 正在制訂 XHTML 2.0 推薦標準。因為 XHTML 2.0 仍然處于起草階段,并且當前沒(méi)有 Web 瀏覽器支持該標準,所以我們不在本文討論它。

創(chuàng )建 XHTML 頁(yè)

與 HTML 頁(yè)不同,XHTML 頁(yè)必須是標準格式且有效的 XML 文檔。XHTML 1.0 推薦標準的第 4 部分對 HTML 和 XHTML 之間的區別進(jìn)行了總結。這里給出生成有效 XHTML 頁(yè)的最重要需求的列表:

頁(yè)必須包含有效的 XHTML DOCTYPE。 
有效的 XHTML 頁(yè)必須在其任何內容之前包含一個(gè) XHTML DOCTYPE。當在 Visual Studio .NET 2005 或 Microsoft Visual Web Developer 中創(chuàng )建新的 ASP.NET 頁(yè)時(shí),該頁(yè)中將自動(dòng)包含 XHTML 1.0 Transitional 的正確的 DOCTYPE。下面列出四個(gè)標準的 XHTML DOCTYPE:

XHTML 1.0 Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">XHTML 1.0 Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">XHTML 1.0 Frameset

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">向頁(yè)中添加 DOCTYPE 會(huì )影響該頁(yè)在瀏覽器中的呈現方式。請參閱以下標題為“XHTML 和 DOCTYPE 切換”的一節。 

根元素必須引用 XHTML 命名空間。 
XHTML 頁(yè)的開(kāi)始 <html> 標記必須指定默認命名空間 http://www.w3.org/1999/xhtml。以下是 XHTML 1.0 Transitional 頁(yè)的有效開(kāi)始 <html> 標記的示例:

<html  xml:lang="en" lang="en">所有元素和屬性名都必須小寫(xiě)。 
XML 區分大小寫(xiě)。因此,在 <p> 標記和 <P> 標記之間存在差異。只有前者是有效的 XHTML 段落標記。 

屬性值必須始終放在引號內。 
確保始終將屬性值放在雙引號或單引號中。例如,以下是無(wú)效的 XHTML。

<a href=SomePage.aspx>Next</a>在該示例中,href 屬性缺少引號。以下代碼是有效的 XHTML。

<a href="SomePage.aspx" mce_href="SomePage.aspx">Next</a>您可以通過(guò)選擇菜單選項 Tools、Options、Format,將 Visual Studio .NET 2005 和 Visual Web Developer 配置為自動(dòng)將屬性值放在引號內。 

所有具有開(kāi)始標記的非空元素都必須具有匹配的結束標記。 
如果具有開(kāi)始 <p> 標記,則必須包含結束 </p> 標記來(lái)標記段落的結束。對于根本不包含任何內容的標記,例如 <br> 標記,可同時(shí)提供開(kāi)始和結束標記 <br></br>,也可以使用空元素簡(jiǎn)寫(xiě)。

為使 XHTML 頁(yè)與現有的 HTML 瀏覽器向后兼容,需要小心處理打開(kāi)和關(guān)閉標記的方式。例如,現有 HTML 瀏覽器傾向于將開(kāi)始和結束 <br> </br> 標記錯誤地解釋為兩個(gè) <br> 元素。因此,您應當使用空元素簡(jiǎn)寫(xiě)</br>。

此外,除非您小心地在結束斜杠之前添加一個(gè)空格,否則現有 HTML 瀏覽器在處理空元素簡(jiǎn)寫(xiě)時(shí)會(huì )出現問(wèn)題。因此,應當使用 <BR< b>[space] />(而不是)向頁(yè)中添加 <br> 元素。 

不得存在重疊標記。 
可以使標記嵌套,但是不允許使標記重疊。例如,以下 XHTML 是有效的。

<b><i>This is bold and italic</i></b>但是,以下 XHTML 是無(wú)效的。

<i><b>This is bold and italic</i></b>不得存在屬性最簡(jiǎn)化。 
所有屬性都必須具有值,即使該值看起來(lái)有一點(diǎn)兒奇怪。例如,標記<input type=”checkbox” checked />是無(wú)效的 XHTML,因為 checked 屬性不具有值。該標記應當寫(xiě)成<input type=”checkbox” checked=”checked” />。 

必須使用 id 屬性而不是 name 屬性。 
在 HTML 中,可以使用 name 屬性來(lái)標識 <a>、<applet>、<form>、<frame>、<iframe>、<img> 和 <map> 元素。盡管可以使用 name 屬性生成 XHTML 1.0 Transitional 頁(yè),但在 XHTML 1.0 Strict 和 XHTML 1.1 標準中已經(jīng)將 name 屬性刪除。您應當改而使用 id 屬性來(lái)標識這些元素。 

必須將 <script> 和 <style> 元素的內容包裝到 CDATA 節中。 
如果在腳本或樣式表中使用特殊字符(例如 < 或 &)或實(shí)體引用(例如 < 或 &),則需要將腳本或樣式表的內容標記為 CDATA(字符數據)節,如下所示。

<script type="text/javascript"> <![CDATA[ function isLess(a, b) {     if (a < b) return true; } ]]> </script>使用 CDATA 節并非對所有瀏覽器都有效。例如,Internet Explorer 會(huì )將 <script> 標記中的 CDATA 節視為語(yǔ)法錯誤??梢酝ㄟ^(guò)添加 JavaScript 注釋避免該問(wèn)題,如下所示。

<script type="text/javascript"> /* <![CDATA[ */ function isLess(a, b) {     if (a < b) return true; } /* ]]> */ </script>JavaScript 使用 /* 和 */ 來(lái)標志注釋的開(kāi)始和結束。因此,CDATA 節對 JavaScript 隱藏,但不對分析該頁(yè)的瀏覽器隱藏??傊?,較好的做法是將樣式規則和腳本放在外部文件中,而從 XHTML 頁(yè)中引用這些文件。通過(guò)使用外部樣式表和腳本,能夠避免上述所有問(wèn)題。 

XHTML 和 DOCTYPE 切換

為 Web頁(yè)指定 DOCTYPE 會(huì )影響瀏覽器呈現頁(yè)的方式。Internet Explorer、Mozilla Firefox 和 Opera 全都支持一種名為“DOCTYPE 切換”(也叫“DOCTYPE 嗅探”)的功能。

引入 DOCTYPE 切換的目的是使瀏覽器能夠正確地呈現符合標準的 Web 站點(diǎn)以及舊式 Web 站點(diǎn)。大多數 Web 站點(diǎn)被開(kāi)發(fā)為呈現 HTML 頁(yè)而不是 XHTML 頁(yè)。瀏覽器通過(guò)判斷是否存在 DOCTYPE 來(lái)確定何時(shí)應該使用標準來(lái)呈現頁(yè)。

Internet Explorer 6+ 支持兩種呈現模式,分別叫做 Quirks 模式和 Standards 模式。當 Internet Explorer 呈現包含有效 XHTML(或 HTML 4.0)DOCTYPE 的頁(yè)時(shí),它會(huì )以 Standards 模式呈現該頁(yè);否則,它會(huì )以 Quirks模式呈現該頁(yè)(有關(guān)詳細信息,請參閱 CSS Enhancements in Internet Explorer 6)。

Opera 瀏覽器 (Opera 7+) 支持與 Internet Explorer 相同的兩種呈現模式:Quirks 和 Standards(有關(guān)詳細信息,請參閱 http://www.opera.com/docs/specs/doctype/)。

Mozilla Firefox 1+ 支持三種呈現模式:Quirks 模式、Almost Standards 模式和 Standards 模式。Firefox 的 Almost Standards 模式對應于 Internet Explorer 和 Opera 的 Standards 模式。當頁(yè)包含有效的 XHTML 1.0 Transitional DOCTYPE(并且該頁(yè)被分配為 text/html MIME 類(lèi)型)時(shí),Firefox 會(huì )以 Almost Standards 模式呈現該頁(yè)。當頁(yè)包含 XHTML 1.0 Strict 或 XHTML 1.1 DOCTYPE(或者該頁(yè)被分配為 XML MIME 類(lèi)型)時(shí),該頁(yè)將以 Standards 模式呈現(有關(guān)詳細信息,請參閱 http://www.mozilla.org/docs/web-developer/quirks/doctypes.html)。

可以通過(guò)臨時(shí)向頁(yè)中添加以下客戶(hù)端腳本(該腳本在最新版本的 Internet Explorer、Firefox 和 Opera 中有效)確定瀏覽器的當前呈現模式。

<script type="text/javascript"> alert( document.compatMode ); </script>您需要關(guān)心瀏覽器的呈現模式,因為它會(huì )影響將層疊樣式表應用于該頁(yè)的方式。如果將現有 HTML 頁(yè)轉換為 XHTML 頁(yè),那么在瀏覽器中打開(kāi)它們時(shí),它們可能看起來(lái)非常不同。

例如,Internet Explorer 以不同方式計算頁(yè)元素的大小,這取決于呈現模式(它使用不同的 CSS Box Model)。在 Quirks 模式下,元素的寬度是通過(guò)將元素的內容、內邊距、邊框和邊距相加而計算得到的。在 Standards 模式下,元素的寬度是只考慮元素內容的寬度而計算得到的。



選擇我們,優(yōu)質(zhì)服務(wù),不容錯過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò )資源,強大的網(wǎng)站優(yōu)化技術(shù),穩定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設經(jīng)驗,優(yōu)秀的技術(shù)和設計水平,更放心
3. 全程省心服務(wù),不必擔心自己不懂網(wǎng)絡(luò ),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032
關(guān)鍵詞標簽:上海網(wǎng)站建設 上海網(wǎng)站制作 網(wǎng)站優(yōu)化 小程序開(kāi)發(fā)
最新国产精品第二页_色资源av中文无码先锋_中国xx爽69护士_日韩欧美亚洲每日更新在线观看