本文參考:W3school
XHTML 簡介
- XHTML 是更嚴謹更純淨的 HTML 版本
- XHTML 是可擴展超文本標籤語言(EXtensible HyperText Markup Language)
- XHTML 是作爲一種 XML 應用被重新定義的 HTML
- XHTML 是一個 W3C 標準
- XHTML 是 HTML 與 XML(擴展標記語言)的結合物
XHTML 引入目的
- 萬維網上的許多頁面都包含着糟糕的 HTML 代碼,即便沒有遵循HTML 規則也能使用
- XML 用來描述數據,而 HTML 則用來顯示數據
- XHTML將HTML 和 XML 各自的長處加以結合得以編寫出擁有良好結構的文檔,這些文檔可以很好地工作於所有的瀏覽器,並且可以向後兼容。
XHTML和HTML 間的差異
主要不同
-
XHTML 元素必須被正確地嵌套
錯誤嵌套
<b><i>text</b></i>
正確嵌套
<b><i>text</i></b>
-
XHTML 元素必須被關閉
非空標籤必須使用結束標籤
<p>text</p>
空標籤必須關閉
<p>text</p><br /> <p>text</p><hr />
-
標籤名必須用小寫字母
XHTML 規範定義:標籤名和屬性對大小寫敏感,標籤一律小寫
<p>text</p><br />
-
XHTML 文檔必須擁有根元素
所有的 XHTML 元素必須被嵌套於 根元素中
<html> <head> ... </head> <body> ... </body> </html>
XHTML 語法
-
屬性名稱必須小寫
<table width="100%">
-
屬性值必須加引號
<table width="100%">
-
屬性不能簡寫
<input checked="checked" /> <input readonly="readonly" /> <input disabled="disabled" /> <option selected="selected" /> <frame noresize="noresize" />
注意 “/” 符號前需添加一個額外的空格使XHTML與瀏覽器相兼容
HTML與XHTML寫法對照表
HTML XHTML compact compact=“compact” checked checked=“checked” declare declare=“declare” readonly readonly=“readonly” disabled disabled=“disabled” selected selected=“selected” defer defer=“defer” ismap ismap=“ismap” nohref nohref=“nohref” noshade noshade=“noshade” nowrap nowrap=“nowrap” multiple multiple=“multiple” noresize noresize=“noresize” -
用 Id 屬性代替 name 屬性
對於下列元素a, applet, frame, iframe, img, 和map應當用name屬性代替id屬性
<!--HTML--> <img src="picture.gif" name="picture1" /> <!--XHTML--> <img src="picture.gif" id="picture1" />
-
XHTML DTD 定義了強制使用的 HTML 元素
XHTML文檔需進行文件類型聲明(DOCTYPE declaration),XHTML文檔中必須存在html、head、body元素,title必須位於head中
<!DOCTYPE Doctype goes here> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Title goes here</title> </head> <body> </body> </html>
文件類型聲明並非 XHTML 文檔自身的組成部分,它並不是 XHTML 元素,也沒有關閉標籤。
XHTML DTD
XHTML 定義了三種文檔類型聲明:
-
STRICT(嚴格類型)
適用範圍:需要乾淨的標記,避免表現上的混亂,與層疊樣式表配合使用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
TRANSITIONAL(過渡類型)
適用範圍:當需要利用 HTML 在表現上的特性時,並且當需要爲那些不支持層疊樣式表的瀏覽器編寫 XHTML 時
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
FRAMESET(框架類型)
適用範圍:需要使用HTML框架將瀏覽器窗口分割爲兩部分或更多框架時
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 驗證
XHTML 文檔是根據文檔類型聲明(DTD)進行驗證的。只有將正確的 DTD 添加到文件的首行,XHTML 文件纔會被正確地驗證
- 嚴格 DTD 包含沒有被反對使用的或不出現在框架結構中的元素和屬性
- 過渡 DTD 包含嚴格 DTD 中的一切,外加那些不贊成使用的元素和屬性
- 框架 DTD 包含過渡 DTD 中的一切,外加框架
XHTML 模塊
通過使用模塊化的 XHTML,產品和軟件設計者可以:
- 選擇被某種設備所支持的元素。
- 在不打破 XHTML 標準的情況下,使用 XML 對 XHTML 進行擴展。
- 針對小型設備,對 XHTML 進行簡化。
- 通過添加新的 XML 功能(比如 MathML, SVG, 語音和多媒體),針對複雜的應用對 XHTML 進行擴展。
- 定義 XHTML 框架,比如 XHTML BASIC (針對移動設備的 XHTML 子集)。