XHTML 快速指南



XHTML - 簡介

XHTML 代表可擴充套件超文字標記語言 (**E**xtensible **H**yper**T**ext **M**arkup **L**anguage)。它是網際網路發展中的下一步。XHTML 1.0 是 XHTML 系列中的第一個文件型別。

XHTML 與 HTML 4.01 幾乎完全相同,只有少數差異。這是一個比 HTML 4.01 更簡潔、更嚴格的版本。如果您已經瞭解 HTML,那麼您只需要稍微注意一下就能學習這個最新的 HTML 版本。

XHTML 由全球資訊網聯盟 (W3C) 開發,旨在幫助 Web 開發人員從 HTML 過渡到 XML。透過今天遷移到 XHTML,Web 開發人員可以進入 XML 世界並享受其所有優勢,同時仍然對內容的向後和向前相容性充滿信心。

為什麼要使用 XHTML?

將內容遷移到 XHTML 1.0 的開發人員可以獲得以下好處:

  • XHTML 文件符合 XML 標準,因為它們可以使用標準的 XML 工具輕鬆檢視、編輯和驗證。

  • XHTML 文件可以編寫得比以前在現有瀏覽器以及新瀏覽器中執行得更好。

  • XHTML 文件可以使用依賴於 HTML 文件物件模型或 XML 文件物件模型的指令碼和應用程式。

  • XHTML 為您提供了更一致、結構良好的格式,以便當前和未來的 Web 瀏覽器可以輕鬆地解析和處理您的網頁。

  • 您可以輕鬆地維護、編輯、轉換和格式化您的文件。

  • 由於 XHTML 是 W3C 的官方標準,您的網站與許多瀏覽器更相容,並且渲染更準確。

  • XHTML 結合了 HTML 和 XML 的優勢。此外,所有支援 XML 的瀏覽器都可以渲染 XHTML 頁面。

  • XHTML 為您的網頁定義了質量標準,如果您遵循該標準,您的網頁將被視為高質量網頁。W3C 會為這些頁面頒發質量認證。

Web 開發人員和 Web 瀏覽器設計人員不斷發現透過新的標記語言表達其想法的新方法。在 XML 中,引入新元素或附加元素屬性相對容易。XHTML 系列旨在透過 XHTML 模組和開發符合 XHTML 的新模組的技術來適應這些擴充套件。這些模組允許在開發內容和設計新的使用者代理時組合現有功能和新功能。

基本理解

在繼續之前,讓我們快速瞭解一下 HTML、XML 和 SGML 是什麼。

什麼是 SGML?

這是符合國際標準 ISO 8879 的**標準通用標記語言 (SGML)** 應用程式。HTML 被廣泛認為是全球資訊網的標準釋出語言。

這是一種用於描述標記語言的語言,特別是那些用於電子文件交換、文件管理和文件釋出的語言。HTML 是 SGML 定義的語言的一個示例。

什麼是 XML?

XML 代表可擴充套件標記語言 (**E**xtensible **M**arkup **L**anguage)。XML 是一種類似於 HTML 的標記語言,它旨在描述資料。XML 標記不是預定義的。您必須根據自己的需要定義自己的標記。

XHTML - 語法

XHTML 語法與 HTML 語法非常相似,幾乎所有有效的 HTML 元素在 XHTML 中也是有效的。但是,當您編寫 XHTML 文件時,您需要額外注意才能使您的 HTML 文件符合 XHTML。

以下是編寫新的 XHTML 文件或將現有 HTML 文件轉換為 XHTML 文件時需要記住的重要事項:

  • 在 XHTML 文件的開頭編寫 DOCTYPE 宣告。

  • 所有 XHTML 標記和屬性都必須小寫。

  • 正確關閉所有 XHTML 標記。

  • 正確巢狀所有標記。

  • 引用所有屬性值。

  • 禁止屬性最小化。

  • 用 `id` 屬性替換 `name` 屬性。

  • 棄用 script 標記的 `language` 屬性。

以下是上述 XHTML 規則的詳細解釋:

DOCTYPE 宣告

所有 XHTML 文件都必須在開頭有一個 DOCTYPE 宣告。有三種類型的 DOCTYPE 宣告,在 XHTML 文件型別宣告章節中有詳細討論。以下是用 DOCTYPE 的示例:

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

大小寫敏感性

XHTML 是大小寫敏感的標記語言。所有 XHTML 標記和屬性都必須小寫。

<!-- This is invalid in XHTML -->
<A Href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</A>

<!-- Correct XHTML way of writing this is as follows -->
<a href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</a>

在這個示例中,`Href` 和錨標記 `A` 不是小寫,所以它是錯誤的。

關閉標記

每個 XHTML 標記都應該有一個等效的結束標記,即使是空元素也應該有結束標記。以下是一個示例,顯示了使用標記的有效和無效方法:

<!-- This is invalid in XHTML -->
<p>This paragraph is not written according to XHTML syntax.

<!-- This is also invalid in XHTML -->
<img src="/images/xhtml.gif" >

以下語法顯示了在 XHTML 中正確編寫上述標記的方法。不同之處在於,這裡我們正確地關閉了兩個標記。

<!-- This is valid in XHTML -->
<p>This paragraph is not written according to XHTML syntax.</p>

<!-- This is also valid now -->
<img src="/images/xhtml.gif" />

屬性引號

所有 XHTML 屬性的值都必須加引號。否則,您的 XHTML 文件將被視為無效文件。以下示例顯示了語法:

<!-- This is invalid in XHTML -->
<img src="/images/xhtml.gif" width=250 height=50 />

<!-- Correct XHTML way of writing this is as follows -->
<img src="/images/xhtml.gif" width="250" height="50" />

屬性最小化

XHTML 不允許屬性最小化。這意味著您需要明確宣告屬性及其值。以下示例顯示了差異:

<!-- This is invalid in XHTML -->
<option selected>

<!-- Correct XHTML way of writing this is as follows -->
<option selected="selected">

以下是 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` 屬性

`id` 屬性替換 `name` 屬性。XHTML 不使用 `name = "name"`,而是使用 `id = "id"`。以下示例顯示瞭如何操作:

<!-- This is invalid in XHTML -->
<img src="/images/xhtml.gif" name="xhtml_logo" />

<!-- Correct XHTML way of writing this is as follows -->
<img src="/images/xhtml.gif" id="xhtml_logo" />

`language` 屬性

script 標記的 `language` 屬性已棄用。以下示例顯示了此差異:

<!-- This is invalid in XHTML -->

<script language="JavaScript" type="text/JavaScript">
   document.write("Hello XHTML!");
</script>

<!-- Correct XHTML way of writing this is as follows -->

<script type="text/JavaScript">
   document.write("Hello XHTML!");
</script>

巢狀標記

您必須正確巢狀所有 XHTML 標記。否則,您的文件將被視為不正確的 XHTML 文件。以下示例顯示了語法:

<!-- This is invalid in XHTML -->
<b><i> This text is bold and italic</b></i>

<!-- Correct XHTML way of writing this is as follows -->
<b><i> This text is bold and italic</i></b>

元素禁止

以下元素不允許在其內部包含任何其他元素。此禁止適用於所有巢狀深度。這意味著它包括所有後代元素。

元素 禁止
<a> 不得包含其他 <a> 元素。
<pre> 不得包含 <img>、<object>、<big>、<small>、<sub> 或 <sup> 元素。
<button> 不得包含 <input>、<select>、<textarea>、<label>、<button>、<form>、<fieldset>、<iframe> 或 <isindex> 元素。
<label> 不得包含其他 <label> 元素。
<form> 不得包含其他 <form> 元素。

一個最小的 XHTML 文件

以下示例顯示了 XHTML 1.0 文件的最小內容:

<?xml version="1.0" encoding="UTF-8"?>

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

<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">
   <head>
      <title>Every document must have a title</title>
   </head>
	
   <body>
      ...your content goes here...
   </body>
</html>

HTML 與 XHTML 的對比

由於 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 處理器識別為實體引用,用於分別顯示“<”和“&”字元。

將 `script` 或 `style` 元素的內容包裝在 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>

XHTML - 文件型別宣告

XHTML 標準定義了三種文件型別定義 (DTD)。最常用且最簡單的是 XHTML Transitional 文件。

XHTML 1.0 文件型別定義對應於三種 DTD:

  • 嚴格 (Strict)
  • 過渡 (Transitional)
  • 框架集 (Frameset)

一些 XHTML 元素和屬性在一個 DTD 中可用,但在另一個 DTD 中不可用。因此,在編寫 XHTML 文件時,必須仔細選擇 XHTML 元素或屬性。但是,XHTML 驗證器可以幫助您識別有效和無效的元素和屬性。

請檢視 XHTML 驗證 以瞭解更多詳細資訊。

XHTML 1.0 嚴格 (Strict)

如果您計劃嚴格使用層疊樣式表 (CSS) 並避免編寫大多數 XHTML 屬性,則建議使用此 DTD。符合此 DTD 的文件質量最佳。

如果您想使用 XHTML 1.0 Strict DTD,則需要在 XHTML 文件的頂部包含以下行:

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

XHTML 1.0 過渡 (Transitional)

如果您計劃使用許多 XHTML 屬性以及一些層疊樣式表屬性,則應採用此 DTD 並相應地編寫 XHTML 文件。

如果您想使用 XHTML 1.0 Transitional DTD,則需要在 XHTML 文件的頂部包含以下行:

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

XHTML 1.0 框架集 (Frameset)

當您想使用 HTML 框架將瀏覽器視窗分成兩個或多個框架時,可以使用此方法。

如果您想使用 XHTML 1.0 Frameset DTD,則需要在 XHTML 文件的頂部包含以下行:

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

注意 - 無論您使用哪個 DTD 來編寫 XHTML 文件;如果它是一個有效的 XHTML 文件,則您的文件被認為是高質量的文件。

XHTML - 屬性

一些 XHTML/HTML 屬性是標準的,並且與所有 XHTML/HTML 標籤相關聯。這些屬性在此處列出,並附有簡要說明:

核心屬性

在 base、head、html、meta、param、script、style 和 title 元素中無效。

屬性 描述
class class_rule 或 style_rule 元素的類。
Id id_name 元素的唯一 ID。
style style_definition 內聯樣式定義。
Title tooltip_text 在滑鼠提示中顯示的文字。

語言屬性

lang 屬性指示所用內容的語言。使用 ISO 標準語言縮寫標識語言,例如法語為 fr,英語為 en,依此類推。更多程式碼及其格式在 www.ietf.org 中進行了描述。

在 base、br、frame、frameset、hr、iframe、param 和 script 元素中無效。

屬性 描述
dir ltr | rtl 設定文字方向。
lang language_code 設定語言程式碼。

Microsoft 專有屬性

Microsoft 在 Internet Explorer 4 和更高版本中引入了一些新的專有屬性。

屬性 描述
accesskey character 設定訪問元素的鍵盤快捷鍵。
language string 此屬性指定要與繫結到元素的關聯指令碼一起使用的指令碼語言,通常透過事件處理程式屬性進行繫結。可能的值可能包括 JavaScript、jScript、VBS 和 VBScript。
tabindex number 設定元素的 Tab 順序。
contenteditable boolean 允許使用者編輯在 Internet Explorer 5.5 或更高版本中呈現的內容。可能的值為 true 或 false。
disabled boolean 設定了 disabled 屬性的元素可能顯示為淡化,並且不會響應使用者輸入。可能的值為 true 或 false。
hidefocus on 或 off 此專有屬性(在 Internet Explorer 5.5 中引入)隱藏元素內容的焦點。必須使用 tabindex 屬性將焦點應用於元素。
unselectable on 或 off 用於防止在 Internet Explorer 5.5 中顯示的內容被選中。

XHTML - 事件

當用戶訪問網站時,他們會執行諸如單擊文字、影像和超連結、懸停等操作。這些是 JavaScript 所稱事件的示例。

我們可以在 JavaScript 或 VBScript 中編寫我們的事件處理程式,並可以將這些事件處理程式指定為事件標籤屬性的值。XHTML 1.0 具有類似的事件集,可在 HTML 4.01 規範中找到。

<body> 和 <frameset> 級事件

只有兩個屬性可以在文件級別發生任何事件時用於觸發任何 JavaScript 或 VBScript 程式碼。

屬性 描述
onload 指令碼 XHTML 文件載入時執行指令碼。
onunload 指令碼 XHTML 文件解除安裝時執行指令碼。

注意 - 在這裡,指令碼指的是 VBScript 或 JavaScript 的任何函式或程式碼片段。

<form> 級事件

以下六個屬性可以在表單級別發生任何事件時用於觸發任何 JavaScript 或 VBScript 程式碼。

屬性 描述
onchange 指令碼 元素更改時執行指令碼。
onsubmit 指令碼 提交表單時執行指令碼。
onreset 指令碼 重置表單時執行指令碼。
onselect 指令碼 選擇元素時執行指令碼。
onblur 指令碼 元素失去焦點時執行指令碼。
onfocus 指令碼 元素獲得焦點時執行指令碼。

鍵盤事件

以下三個事件由鍵盤生成。這些事件在 base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style 和 title 元素中無效。

屬性 描述
onkeydown 指令碼 按鍵時執行指令碼。
onkeypress 指令碼 按鍵和釋放時執行指令碼。
onkeyup 指令碼 釋放鍵時執行指令碼。

其他事件

當滑鼠與任何 HTML 標籤接觸時,以下七個事件由滑鼠生成。這些事件在 base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style 和 title 元素中無效。

屬性 描述
onclick 指令碼 滑鼠單擊時執行指令碼。
ondblclick 指令碼 滑鼠雙擊時執行指令碼。
onmousedown 指令碼 按下滑鼠按鈕時執行指令碼。
onmousemove 指令碼 滑鼠指標移動時執行指令碼。
onmouseout 指令碼 滑鼠指標移出元素時執行指令碼。
onmouseover 指令碼 滑鼠指標移到元素上時執行指令碼。
onmouseup 指令碼 釋放滑鼠按鈕時執行指令碼。

XHTML - 1.1 版本

W3C 幫助網際網路內容開發社群從格式錯誤、非標準標記的時代轉變為格式良好、有效的 XML 世界。在 XHTML 1.0 中,此轉變受到將現有基於 HTML 4(或更早版本)的內容輕鬆遷移到 XHTML 和 XML 的目標的調節。

W3C 已從 XHTML 系列中刪除對已棄用元素和屬性的支援。這些元素和屬性主要具有面向演示的功能,最好透過樣式表或特定於客戶端的預設行為來處理。

現在,W3C 的 HTML 工作組已定義了一個僅基於模組的初始文件型別,即 XHTML 1.1。此文件型別旨在可移植到各種客戶端裝置,並適用於大多數網際網路內容。

文件一致性

XHTML 1.1 提供了嚴格一致的 XHTML 文件的定義,必須滿足以下所有條件:

  • 文件必須符合 XHTML 1.1 文件型別定義中表達的約束。

  • 文件的根元素必須是 <html>。

  • 文件的根元素必須使用 xmlns 屬性指定 XHTML 名稱空間。

  • 根元素也可以包含 XML 架構中定義的架構位置屬性。

在根元素之前,文件中必須有一個 DOCTYPE 宣告。如果存在,DOCTYPE 宣告中包含的公共識別符號必須引用 XHTML 1.1 文件型別定義中找到的 DTD。

這是一個 XHTML 1.1 文件的示例:

<?xml version="1.0" encoding="UTF-8"?>

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

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en">
	
   <head>
      <title>This is the document title</title>
   </head>
	
   <body>
      <p>Moved to <a href="http://example.org/">example.org</a>.</p>
   </body>
	
</html>

注意 - 在此示例中,包含了 XML 宣告。並非所有 XML 文件都需要如上所示的 XML 宣告。強烈建議 XHTML 文件作者在其所有文件中使用 XML 宣告。當文件的字元編碼不是預設的 UTF-8 或 UTF-16 時,需要此類宣告。

XHTML 1.1 模組

XHTML 1.1 文件型別由以下 XHTML 模組組成。

結構模組 - 結構模組定義了 XHTML 的主要結構元素。這些元素有效地充當許多 XHTML 系列文件型別的內容模型的基礎。此模組中包含的元素和屬性為:body、head、html 和 title。

文字模組 - 此模組定義了所有基本的文字容器元素、屬性及其內容模型:abbr、acronym、address、blockquote、br、cite、code、dfn、div、em、h1、h2、h3、h4、h5、h6、kbd、p、pre、q、samp、span、strong 和 var。

超文字模組 - 超文字模組提供用於定義到其他資源的超文字連結的元素。此模組支援元素 a。

列表模組 - 正如其名稱所示,列表模組提供面向列表的元素。具體而言,列表模組支援以下元素和屬性:dl、dt、dd、ol、ul 和 li。

物件模組 - 物件模組提供用於通用物件包含的元素。具體而言,物件模組支援:object 和 param。

演示模組 - 此模組定義了元素、屬性和用於簡單演示相關標記的最小內容模型:b、big、hr、i、small、sub、sup 和 tt。

編輯模組 - 此模組定義了用於編輯相關標記的元素和屬性:del 和 ins。

雙向文字模組 - 雙向文字模組定義了一個元素,可用於宣告元素內容的雙向規則:bdo。

表單模組 - 它提供 HTML 4.0 中的所有表單功能。具體而言,它支援:button、fieldset、form、input、label、legend、select、optgroup、option 和 textarea。

表格模組 - 它支援以下元素、屬性和內容模型:caption、col、colgroup、table、tbody、td、tfoot、th、thead 和 tr。

影像模組 - 它提供基本的影像嵌入,並且可以在某些客戶端影像對映實現中獨立使用。它支援元素:img。

客戶端影像對映模組 - 它提供客戶端影像對映的元素:area 和 map。

伺服器端影像對映模組 - 它提供對影像選擇和選擇座標傳輸的支援。伺服器端影像對映模組支援:img 上的 ismap 屬性。

內建事件模組 − 它支援 XHTML 事件中討論的所有事件。

元資訊模組 − 元資訊模組定義了一個元素,用於描述文件宣告部分中的資訊。它包含元素 meta。

指令碼模組 − 它定義了用於包含與可執行指令碼相關的資訊或缺乏對可執行指令碼支援的元素。此模組中包含的元素和屬性為 − noscript 和 script。

樣式表模組 − 它定義了一個元素,用於宣告內部樣式表。此模組定義的元素和屬性為 − style。

樣式屬性模組(已棄用) − 它定義了 style 屬性。

連結模組 − 它定義了一個元素,可用於定義到外部資源的連結。它支援 link 元素。

基準模組 − 它定義了一個元素,可用於定義一個基準 URI,文件中的相對 URI 將相對於此基準 URI 解析。此模組中包含的元素和屬性為 − base

Ruby 註解模組 − XHTML 還使用 RUBY 中定義的 Ruby 註解模組,並支援 − ruby、rbc、rtc、rb、rt 和 rp。

XHTML 1.0 Strict 的更改

本節描述了 XHTML 1.1 和 XHTML 1.0 Strict 之間的區別。XHTML 1.1 代表了與 HTML 4 和 XHTML 1.0 的偏離。

  • 最顯著的變化是刪除了已棄用的功能。

  • 這些更改可以總結如下:

  • 在每個元素上,都已刪除 lang 屬性,而採用 xml:lang 屬性。

  • 在 <a> 和 <map> 元素上,已刪除 name 屬性,而採用 id 屬性。

  • 已新增 ruby 元素集合。

XHTML - 提示與技巧

本章列出了編寫 XHTML 文件時應注意的各種技巧和竅門。這些技巧和竅門可以幫助您建立有效的文件。

XHTML 文件設計技巧

以下是設計 XHTML 文件的一些基本指南:

為服務和吸引您的受眾而設計

當您考慮滿足受眾的需求時,您需要設計有效且引人入勝的文件來達到目的。您的文件應該易於查詢所需資訊並提供熟悉的環境。

例如,學者或醫務人員習慣於使用長句、複雜的圖表、特定的術語等類似期刊的文件,而小學生訪問的文件必須簡潔明瞭。

重複使用您的文件

重複使用您之前建立的成功文件,而不要每次獲得新專案時都從頭開始。

XHTML 文件內部

以下是一些關於 XHTML 文件內元素的技巧:

XML 宣告

並非所有 XHTML 文件都需要 XML 宣告,但強烈建議 XHTML 文件作者在其所有文件中使用 XML 宣告。當文件的字元編碼不是預設的 UTF-8 或 UTF-16 時,需要此類宣告。

空元素

它們在空元素的尾隨 / 和 > 之前包含一個空格。例如,<br />、<hr /> 和 <img src="/html/xhtml.gif" alt="xhtml" />。

嵌入式樣式表和指令碼

如果您的樣式表使用“<”、“&”、“]]>”或“—”,請使用外部樣式表。

如果您的指令碼使用“<”、“&”、“]]>”或“—”,請使用外部指令碼。

屬性值中的換行符

避免屬性值中的換行符和多個空格字元。不同的瀏覽器對這些字元的處理方式不一致。

Isindex 元素

不要在文件頭部包含多個 isindex 元素。isindex 元素已被棄用,而採用 input 元素。

langxml:lang 屬性

在指定元素的語言時,同時使用 langxml:lang 屬性。xml:lang 屬性的值優先。

元素識別符號

XHTML 1.0 已棄用 a、applet、form、frame、iframe、imgmap 元素的 name 屬性。它們將在後續版本的 XHTML 中被刪除。因此,請開始使用 id 元素進行元素標識。

在屬性值中使用和號

和號字元 ("&") 應表示為實體引用 &。

示例

<!-- This is invalid in XHTML -->
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.

<!-- Correct XHTML way of writing this is as follows -->
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user

HTML 和 XML 中的空格字元

HTML 文件中的一些合法字元在 XML 文件中是非法的。例如,在 HTML 中,換頁符 (U+000C) 被視為空格,但在 XHTML 中,由於 XML 對字元的定義,它是非法的。

命名字元引用 &Apos;

命名字元引用 '(撇號,U+0027)是在 XML 1.0 中引入的,但沒有出現在 HTML 中。因此,Web 開發人員應使用 &#39; 而不是 ',以使其在 HTML 4 Web 瀏覽器中按預期工作。

XHTML - 驗證

每個 XHTML 文件都將針對文件型別定義進行驗證。在正確驗證 XHTML 檔案之前,必須將正確的 DTD 新增到檔案的第 1 行或第 2 行。

準備好驗證 XHTML 文件後,可以使用 W3C 驗證器來驗證文件。此工具非常方便,可以幫助您修復文件中的問題。此工具無需任何專業知識即可執行驗證。

文字框中的以下語句顯示詳細資訊。您需要提供要驗證的頁面的完整 URL,然後單擊 驗證頁面 按鈕。

在下面的框中輸入您的頁面地址:

此驗證器檢查具有各種格式的 Web 文件(尤其是在 HTML、XHTML、SMIL、MathML 等中)的標記有效性

還有其他工具可以執行其他不同的驗證。

XHTML - 總結

我們假設您已經理解了與 XHTML 相關的所有概念。因此,您應該能夠將 HTML 文件編寫成格式良好的 XHTML 文件,並獲得更清晰的網站版本。

將 HTML 轉換為 XHTML

您可以將現有的 HTML 網站轉換為 XHTML 網站。

讓我們來看一些重要的步驟。要轉換現有文件,您必須首先確定要遵循哪個 DTD,並在文件頂部包含文件型別定義。

  • 確保您擁有所有其他必需的元素。這些元素包括指示 XML 名稱空間的根元素 <html>、<head> 元素、包含在 <head> 元素中的 <title> 元素以及 <body> 元素。

  • 將所有元素關鍵字和屬性名稱轉換為小寫。

  • 確保所有屬性都採用 name="value" 格式。

  • 確保所有容器元素都有結束標籤。

  • 在所有獨立元素內放置正斜槓。例如,將所有 <br> 元素重寫為 <br />。

  • 將客戶端指令碼程式碼和樣式表程式碼指定為 CDATA 部分。

XHTML 未來版本

XHTML 仍在改進中,其下一個版本 XHTML 1.1 已經起草。我們在 XHTML 1.1 版本章節中詳細討論了這一點。

XHTML 標籤、字元和實體

XHTML 標籤、字元和實體與 HTML 相同,因此,如果您已經瞭解 HTML,則無需付出額外的努力來學習這些主題,尤其是在 XHTML 中。我們還列出了所有 HTML 內容以及 XHTML 教程,因為它們也適用於 XHTML。

接下來是什麼?

我們列出了 XHTML 和 HTML 的各種資源,因此,如果您有興趣並且有時間,我們建議您閱讀這些資源以增強您對 XHTML 的理解。否則,本教程應該已經為您提供了足夠的知識來使用 XHTML 編寫網頁。

歡迎您將對此教程的反饋傳送至 contact@tutorialspoint.com。

廣告
© . All rights reserved.