W3C ( World Wide Web Consortium ) 是一個致力於 W3 (World Wide Web) 標准化的組織,成立於1994年11月,目前(2007年5月)已經擁有441個會員,他們參與制作了以下與 W3 相關的標准:
W3C 標准使全球的網頁設計人員和浏覽器制造商之間有了一個共同的標准,遵守這個標准的網頁,在所有遵守 W3C 標准的浏覽器上都可以獲得一致的表現,由於世界上主流的浏覽器(包括 IE6+),目前都遵守 W3C 規范,所以,如果您的網站是基於 W3C 標准建立的,您可以完全不必擔心浏覽器兼容問題。
網站建設中最常用到 W3C 標准有三個 CSS, HTML, XHTML。其中 HTML 和 XHTML 用來提供內容,CSS 用來對內容進行修飾。現今,HTML + CSS 或者 XHTML + CSS 已經成為最有效的網頁表現形式,這種表現形式的本質是,將內容同修飾分開,這樣便於創作者在更新內容的時候,不必關心修飾,而更新修飾的時候,不必理會內容。
浏覽器在對網頁進行解析的時候,必須參照相應的標准,現代的浏覽器會使用不同的標准解析網頁內容,因為網頁的置標語言有 HTML 和 XHTML 之分,我們在將網頁送給浏覽器解析之前,必須告訴它我們用的是 HTML 還是 XHTML,這就出現了 DOCTYPE 的概念,DOCTYPE 放在網頁的最前面,它有多種定義形式,以下為 XHTML STRICT DOCTYPE 的定義,該定義告訴浏覽器,接下來的 HTML 文檔使用 XHTML 1.0 作為置標語言,使用 strict 規范進行解析。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
六種最常見的 DOCTYPE 定義
分別有三種 HTML DOCTYPE 和三種 XHTML DOCTYPE 構成了六種最常用的 DOCTYPE 定義,它們各有不同的側重點,需要注意的是,其中的一些松散定義的目的是保持當前網站中的歷史遺留(Legacy)網頁同現代浏覽器的兼容,采用松散定義的網頁雖然在現代浏覽器中仍能獲得理想的表現,是因為浏覽器進行了大量的容錯處理,盡可能正確理解那些不和標准的網頁代碼,所以,如果您想從零開始進行網站建設,使用最嚴格的 DOCTYPE 可以保證您的網站將來不會出現兼容問題,因為浏覽器對松散定義的網頁的支持,將來未必能獲得保證。
XHTML 1.0 Strict
XHTML STRICT + CSS 是目前公認最嚴格,最有前途的標准,使用該標准,可以保證您的網頁擁有干淨的置標代碼,穩定的兼容性能和最廣泛的浏覽器支持,我們在後面的 SEO 部分中還會提到,這種標准的網頁在 SEO 中也會獲得好的表現。它的定義為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
正象 Transitional 這個意思所表明的那樣,該標准是一種過度標准,旨在保持網站中歷史遺留網頁的兼容性,目前,該標准下的網頁在各大浏覽器中基本可以獲得一致的表現,但將來是否會被繼續支持卻沒有保證,另外,同樣一個網頁,使用該 DOCTYPE 解析的時候,顯示正常,但改用 XHTML 1.0 Strict 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 Frameset
當您需要使用 Frame 將您的頁面劃分成幾個窗口的時候,需要使用本標准,但 Frame 是一種過時的技術,它最大的弱點在於不被搜索引擎支持,除非您有十分充足的理由,否則我們不建議您使用 Frame。它的定義為:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
HTML Strict
這種定義和 XHTML STRICT 一樣,只是用 HTML 代替 XHTML。它的定義為:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML Transitional
和 HTML 一樣,只是用 HTML 代替 XHTML。它的定義為:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML Frameset
和 XHTML Frameset 一樣,只是用 HTML 代替 XHTML。它的定義為:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
使用 XHTML 並非想象中的那麼難,事實上,XHTML 和 HTML 的區別並不大,這期間並不存在很高的學習曲線,您完全可以在很短的時間內掌握 XHTML 並最終取代 HTML。以下是二者主要的區別:
XHTML 中的元素之間必須按次序正確嵌套
在 HTML 中
<a href=''><b>Linka></b>
雖然不規范,但浏覽器都可以正確解析,在 XHML,您必須嚴格這樣寫
<a href=''><b>Link</b>a>
XHTML 中的元素必須包含結束標志
在 HTML 中,您可以這樣寫
<p>This is paragraph one
<p>This is paragraph two
或者這樣寫
<img src='...'><br>
在 XHML,您必須嚴格這樣寫
This is paragraph one
This is paragraph two
<img src='...'>
XHTML 必須使用小寫
在 HTML 中,您可以這樣寫
<IMG SRC='...'><BR>
在 XHTML 中,您必須這樣寫
<img src='...'><br>
XHTML 文檔必須有根 Element
您必須保持文檔的嚴密結構。
XHTML 元素的屬性必須使用引號引起來
在 HTML 中,您可以這樣寫
<table width=100%>
在 XHML,您必須嚴格這樣寫
<table width="100%">
XHTML 簡而言之,就是擁有 XML 規范的 HTML,將 XML 引入 HTML 的目的是改變 HTML 代碼不夠嚴格的問題,在我們的網絡世界,到處充斥著劣質的 HTML 代碼,這些代碼的正確顯示,取決於浏覽器的容錯能力,而我們對此是沒有保障的。而 XML 要求您的內容必須嚴格按照規范進行置標,只有這樣,我們才能獲得結構嚴謹的文檔,結構嚴謹的文檔才能在各種浏覽器中獲得准確一致的表現,包括各種手持設備上的浏覽器,我們知道,對手持設備而言,它們的浏覽器沒有那麼強的處理能力來糾正 HTML 代碼中的錯誤。同樣, XHTML 完全向後兼容。