- XHTML 教程
- XHTML - 首頁
- XHTML - 簡介
- XHTML - 語法
- XHTML - 對比
- XHTML - 文件型別
- XHTML - 屬性
- XHTML - 事件
- XHTML - 1.1 版本
- XHTML - 提示與技巧
- XHTML - 驗證
- XHTML - 總結
- XHTML 有用資源
- XHTML - 快速指南
- XHTML - 有用資源
XHTML vs HTML
由於 XHTML 是一個 XML 應用程式,因此在基於 SGML 的 HTML 4 中完全合法的某些實踐必須更改。您已在上一章中看到了 XHTML 語法,因此 XHTML 和 HTML 之間的差異非常明顯。以下是 XHTML 和 HTML 的比較。
XHTML 文件必須是格式良好的
格式良好是 XML 引入的一個新概念。本質上,這意味著所有元素都必須有結束標籤,並且必須正確巢狀它們。
正確:巢狀元素
<p>Here is an emphasized <em>paragraph</em>.</p>
錯誤:重疊元素
<p>Here is an emphasized <em>paragraph.</p></em>
元素和屬性必須小寫
XHTML 文件必須對所有 HTML 元素和屬性名稱使用小寫字母。這種差異是必要的,因為 XHTML 文件被認為是一個 XML 文件,而 XML 區分大小寫。例如,<li> 和 <LI> 是不同的標籤。
所有元素都需要結束標籤
在 HTML 中,某些元素允許省略結束標籤。但 XML 不允許省略結束標籤。
正確:已終止的元素
<p>Here is a paragraph.</p><p>here is another paragraph.</p> <br><hr/>
錯誤:未終止的元素
<p>Here is a paragraph.<p>here is another paragraph. <br><hr>
屬性值必須始終加引號
所有屬性值,包括數值,都必須加引號。
正確:帶引號的屬性值
<td rowspan="3">
錯誤:未加引號的屬性值
<td rowspan=3>
屬性最小化
XML 不支援屬性最小化。必須完整編寫屬性值對。例如 compact 和 checked 等屬性名稱不能在元素中出現而沒有指定其值。
正確:非最小化屬性
<dl compact="compact">
錯誤:最小化屬性
<dl compact>
屬性值中的空格處理
當瀏覽器處理屬性時,它會執行以下操作:
去除前導和尾隨空格。
將一個或多個空格字元(包括換行符)的序列對映到單個單詞間空格。
指令碼和樣式元素
在 XHTML 中,script 和 style 元素不應直接包含“<”和“&”字元,如果存在;則它們被視為標記的開始。XML 處理器將諸如“<”和“&”之類的實體識別為實體引用,以分別顯示“<”和“&”字元。
將指令碼或樣式元素的內容包裝在 CDATA 標記部分中可以避免展開這些實體。
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
另一種方法是使用外部指令碼和樣式文件。
帶有id和name屬性的元素
XHTML 建議用id屬性替換name屬性。請注意,在 XHTML 1.0 中,這些元素的name屬性正式已棄用,並且將在後續版本的 XHTML 中刪除。
具有預定義值集的屬性
HTML 和 XHTML 都有一些屬性具有預定義和有限的值集。例如,input元素的type屬性。在 HTML 和 XML 中,這些稱為列舉屬性。在 HTML 4 中,這些值的解釋不區分大小寫,因此TEXT的值等效於text的值。
在 XHTML 中,這些值的解釋區分大小寫,因此所有這些值都定義為小寫。
實體引用作為十六進位制值
HTML 和 XML 都允許使用十六進位制值引用字元。在 HTML 中,可以使用&#Xnn;或&#xnn;進行這些引用,它們都是有效的,但在 XHTML 文件中,必須僅使用小寫版本,例如&#xnn;。
<html> 元素是必須的
所有 XHTML 元素都必須巢狀在<html>根元素內。所有其他元素都可以有子元素,這些子元素必須成對出現,並正確巢狀在其父元素內。基本的文件結構是:
<!DOCTYPE html....> <html> <head> ... </head> <body> ... </body> </html>