XHTML代表EXtensibleHyperTextMarkupLanguage。這是網際網路發展的下一步。XHTML 1.0是XHTML系列中的第一種文檔類型。
XHTML與HTML 4.01幾乎相同,只有很少的區別。這是一個更乾淨和嚴格的HTML4.01版本。如果你已經知道HTML,那麼你需要花很少的精力來學習這個最新版本的HTML。
XHTML是由全球資訊網聯盟(W3C)開發的,旨在幫助Web開發人員從HTML過渡到XML。通過今天遷移到XHTML,web開發人員可以帶著它的所有優點進入XML世界,同時仍然對內容的向後兼容性和將來的兼容性充滿信心。
Why Use 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兼容模塊的技術來適應這些擴展。這些模塊允許在開發內容和設計新的用戶代理時結合現有和新的功能。
Basic Understanding
在繼續之前,讓我們快速了解一下什麼是HTML、XML和SGML。
What is SGML?
這是符合國際標準ISO 8879的標準化語言(SGML)應用。HTML被廣泛認爲是全球資訊網的標準發布語言。
這是一種描述標記語言的語言,特別是那些用於電子文檔交換、文檔管理和文檔發布的語言。HTML是SGML中定義的語言的一個例子。
What is XML?
X M L代表EXtensibleMarkupLanguage。XML是一種類似於HTML的標記語言,它是用來描述數據的。XML標記不是預定義的。您必須根據需要定義自己的標記。
XHTML - Syntax
XHTML語法與HTML語法非常相似,幾乎所有有效的HTML元素在XHTML中都是有效的。但是,在編寫XHTML文檔時,需要格外注意使HTML文檔與XHTML兼容。
以下是編寫新的XHTML文檔或將現有的HTML文檔轉換爲XHTML文檔時要記住的要點−
在XHTML文檔的開頭編寫DOCTYPE聲明。
僅用小寫字母書寫所有XHTML標記和屬性。
正確關閉所有XHTML標記。
正確嵌套所有標記。
引用所有屬性值。
禁止屬性最小化。
用id屬性替換name屬性。
不贊成腳本標記的語言屬性。
下面是對上述XHTML規則的詳細解釋−
DOCTYPE Declaration
所有XHTML文檔的開頭都必須有DOCTYPE聲明。有三種類型的DOCTYPE聲明,在XHTML Doctypes一章中將詳細討論。下面是一個使用DOCTYPE−
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Case Sensitivity
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>
在本例中,ref和anchor tagA不是小寫的,因此不正確。
Closing the Tags
每個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" />
Attribute Quotes
必須引用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" />
Attribute Minimization
XHTML不允許屬性最小化。這意味著您需要顯式地聲明屬性及其值。下面的示例顯示了差異−
<!-- This is invalid in XHTML --> <option selected> <!-- Correct XHTML way of writing this is as follows --> <option selected="selected">
下面是HTML中最小化屬性的列表,以及用XHTML編寫它們的方式−
HTML Style | XHTML Style |
---|---|
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" |
The id Attribute
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" />
The language Attribute
不推薦使用腳本標記的語言屬性。下面的示例顯示了這種差異;
<!-- 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>
Nested Tags
必須正確嵌套所有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>
Element Prohibitions
以下元素中不允許有任何其他元素。這項禁令適用於所有深度的築巢。意思是,它包含所有的降序元素。
Element | Prohibition |
---|---|
<a> | Must not contain other <a> elements. |
<pre> | Must not contain the <img>, <object>, <big>, <small>, <sub>, or <sup> elements. |
<button> | Must not contain the <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe> or <isindex> elements. |
<label> | Must not contain other <label> elements. |
<form> | Must not contain other <form> elements. |
A Minimal XHTML Document
下面的示例向您展示了XHTML1.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 Versus XHTML
由於XHTML是一個XML應用程式,因此必須更改在基於SGML的HTML4中完全合法的某些實踐。您已經在上一章中看到了XHTML語法,因此XHTML和HTML之間的差異非常明顯。下面是XHTML和HTML的比較。
XHTML Documents Must be Well-Formed
格式良好性是XML引入的一個新概念。本質上,這意味著所有元素都必須有結束標記,並且必須正確地嵌套它們。
正確:嵌套元素
<p>Here is an emphasized <em>paragraph</em>.</p>
不正確:重疊元素
<p>Here is an emphasized <em>paragraph.</p></em>
Elements and Attributes Must be in Lower Case
XHTML文檔必須對所有HTML元素和屬性名使用小寫。這種差異是必要的,因爲XHTML文檔被假定爲XML文檔,而XML是區分大小寫的。例如,<li>和<li>是不同的標記。
End Tags are Required for all Elements
在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>
Attribute Values Must Always be Quoted
必須引用所有屬性值(包括數值)。
正確:引用的屬性值
<td rowspan="3">
不正確:未引用的屬性值
<td rowspan=3>
Attribute Minimization
XML不支持屬性最小化。必須完整寫入屬性-值對。如果未指定屬性名的值,則不能在元素中出現諸如compact和checked之類的屬性名。
正確:非最小化屬性
<dl compact="compact">
不正確:最小化屬性
<dl compact>
Whitespace Handling in Attribute Values
當瀏覽器處理屬性時,它會執行以下操作−
刪除前導空格和尾隨空格。
將一個或多個空白字符(包括換行符)的序列映射到單個字間距。
Script and Style Elements
在XHTML中,腳本和樣式元素不應直接包含「<」和「&」字符(如果存在),然後將它們視爲標記的開始。XML處理器將「<」和「&」等實體識別爲實體引用,分別顯示「<」和「&」字符。
將腳本或樣式元素的內容包裝在CDATA標記的節中可以避免這些實體的擴展。
<script type="text/JavaScript"> <![CDATA[ ... unescaped VB or Java Script here... ... ]]> </script>
另一種方法是使用外部腳本和樣式文檔。
The Elements with id and name Attributes
XHTML建議用id屬性替換name屬性。注意,在XHTML1.0中,這些元素的name屬性正式被棄用,它將在隨後的XHTML版本中被刪除。
Attributes with Pre-defined Value Sets
HTML和XHTML都有一些屬性,這些屬性具有預定義的和有限的值集。例如,輸入元素的屬性。在HTML和XML中,這些屬性稱爲枚舉屬性。在HTML 4中,對這些值的解釋是不區分大小寫的,因此TEXT的值相當於TEXT的值。
在XHTML下,這些值的解釋是區分大小寫的,因此所有這些值都是用小寫定義的。
Entity References as Hex Values
HTML和XML都允許使用十六進位值引用字符。在HTML中,這些引用可以使用&Xnn;或&Xnn;進行,它們是有效的,但在XHTML文檔中,您必須僅使用小寫版本,如&Xnn;。
The <html> Element is a Must
所有XHTML元素都必須嵌套在根元素中。所有其他元素都可以有子元素,這些子元素必須成對並正確嵌套在其父元素中。基本文檔結構是&負;
<!DOCTYPE html....> <html> <head> ... </head> <body> ... </body> </html>
XHTML - Doctypes
XHTML標準定義了三個文檔類型定義(dtd)。最常用和最簡單的是XHTML轉換文檔。
XHTML 1.0文檔類型定義對應於三個dtd−
- Strict
- Transitional
- Frameset
XHTML元素和屬性很少,它們在一個DTD中可用,但在另一個DTD中不可用。因此,在編寫XHTML文檔時,必須仔細選擇XHTML元素或屬性。但是,XHTML驗證器可以幫助您識別有效和無效的元素和屬性。
請檢查xhtml validations(xhtml驗證)。
XHTML 1.0 Strict
如果您計劃嚴格使用層疊樣式表(CSS)並避免編寫大多數XHTML屬性,那麼建議使用此DTD。符合本DTD的文件質量最好。
如果要使用XHTML 1.0嚴格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過渡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框架集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 - Attributes
有一些XHTML/HTML屬性是標準的,並且與所有XHTML/HTML標記關聯。這裡列出了這些屬性,並對其進行了簡要描述;
Core Attributes
在base、head、html、meta、param、script、style和title元素中無效。
Attribute | Value | Description |
---|---|---|
class | class_rule or style_rule | The class of the element. |
Id | id_name | A unique id for the element. |
style | style_definition | An inline style definition. |
Title | tooltip_text | A text to display in a mouse tip. |
Language Attributes
lang屬性表示用於所附內容的語言。該語言使用ISO標準語言縮寫來標識,例如fr表示法語,en表示英語,等等。更多代碼及其格式請參見www.ietf.org。
在base、br、frame、frameset、hr、iframe、param和script元素中無效。
Attribute | Value | Description |
---|---|---|
dir | ltr | rtl | Sets the text direction. |
lang | language_code | Sets the language code. |
Microsoft Proprietary Attributes
微軟在InternetExplorer4和更高版本中引入了一些新的專有屬性。
Attribute | Value | Description |
---|---|---|
accesskey | character | Sets a keyboard shortcut to access an element. |
language | string | This attribute specifies the scripting language to be used with an associated script bound to the element, typically through an event handler attribute. Possible values might include JavaScript, jScript, VBS, and VBScript. |
tabindex | number | Sets the tab order of an element. |
contenteditable | boolean | Allows users to edit content rendered in Internet Explorer 5.5 or greater. Possible values are true or false. |
disabled | boolean | Elements with the disabled attribute set may appear faded and will not respond to user input. Possible values are true or false. |
hidefocus | on or off | This proprietary attribute, introduced with Internet Explorer 5.5, hides focus on an element's content. Focus must be applied to the element using the tabindex attribute. |
unselectable | on or off | Used to prevent content displayed in Internet Explorer 5.5 from being selected. |
XHTML - Events
當用戶訪問一個網站時,他們會做一些事情,比如點擊文本、圖片和超連結、在上面懸停等等,這些都是JavaScript所說的事件的例子。
我們可以用JavaScript或VBScript編寫事件處理程序,並將這些事件處理程序指定爲事件標記屬性的值。XHTML1.0有一組類似的事件,可在HTML4.01規範中找到。
The <body> and <frameset> Level Events
只有兩個屬性可用於在文檔級別發生任何事件時觸發任何JavaScript或VBScript代碼。
Attribute | Value | Description |
---|---|---|
onload | Script | Script runs when a XHTML document loads. |
onunload | Script | Script runs when a XHTML document unloads. |
注意−這裡,腳本指的是VBScript或JavaScript的任何函數或代碼片段。
The <form> Level Events
以下六個屬性可用於在窗體級別發生任何事件時觸發任何JavaScript或VBScript代碼。
Attribute | Value | Description |
---|---|---|
onchange | Script | Script executes when the element changes. |
onsubmit | Script | Script executes when the form is submitted. |
onreset | Script | Script executes when the form is reset. |
onselect | Script | Script executes when the element is selected. |
onblur | Script | Script executes when the element loses focus. |
onfocus | Script | Script runs when the element gets focus. |
Keyboard Events
以下三個事件由鍵盤生成。這些事件在base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style和title元素中無效。
Attribute | Value | Description |
---|---|---|
onkeydown | Script | Script executes on key press. |
onkeypress | Script | Script executes on key press and release. |
onkeyup | Script | Script executes key release. |
Other Events
當滑鼠接觸到任何HTML標記時,都會生成以下七個事件。這些事件在base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style和title元素中無效。
Attribute | Value | Description |
---|---|---|
onclick | Script | Script executes on a mouse click. |
ondblclick | Script | Script executes on a mouse double-click. |
onmousedown | Script | Script executes when mouse button is pressed. |
onmousemove | Script | Script executes when mouse pointer moves. |
onmouseout | Script | Script executes when mouse pointer moves out of an element. |
onmouseover | Script | Script executes when mouse pointer moves over an element. |
onmouseup | Script | Script executes when mouse button is released. |
XHTML - Version 1.1
W3C幫助網際網路內容開發社區從格式錯誤、非標準的標記時代,轉變爲格式良好、有效的XML世界。在XHTML1.0中,這一舉措的目標是提供將現有的基於HTML4(或更早版本)的內容輕鬆遷移到XHTML和XML。
W3C已經從XHTML系列中刪除了對不推薦使用的元素和屬性的支持。這些元素和屬性在很大程度上具有面向表示的功能,通過樣式表或特定於客戶端的默認行爲可以更好地處理這些功能。
現在W3C的HTML工作組已經定義了一個初始的文檔類型,它完全基於XHTML 1.1模塊。此文檔類型設計爲可移植到廣泛的客戶端設備集合,並適用於大多數internet內容。
Document Conformance
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 Modules
XHTML 1.1文檔類型由以下XHTML模塊組成。
結構模塊−結構模塊定義XHTML的主要結構元素。這些元素有效地充當了許多XHTML系列文檔類型的內容模型的基礎。此模塊中包含的元素和屬性有−body、head、html和title。
文本模塊−此模塊定義所有基本文本容器元素、屬性及其內容模型−縮寫、地址、blockquote、br、cite、code、dfn、div、em、h1、h2、h3、h4、h5、h6、kbd、p、pre、q、samp、span、strong和var。
超文本模塊提供用於定義指向其他資源的超文本連結的元素。此模塊支持元素a。
List Module−顧名思義,List Module提供面向列表的元素。具體來說,List模塊支持以下元素和屬性&負;dl、dt、dd、ol、ul和li。
對象模塊−對象模塊爲通用對象包含提供元素。具體來說,Object模塊支持−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。
客戶端圖像映射模塊爲客戶端圖像映射區域和映射提供元素。
伺服器端圖像映射模塊爲圖像選擇和選擇坐標的傳輸提供支持。伺服器端圖像映射模塊支持img上的−屬性ismap。
內部事件模塊−它支持XHTML事件中討論的所有事件。
元信息模塊−元信息模塊定義了一個元素,用於描述文檔聲明部分中的信息。它包括元素meta。
腳本模塊−它定義用於包含與可執行腳本相關的信息或不支持可執行腳本的元素。此模塊中包含的元素和屬性是−noscript和script。
樣式表模塊定義聲明內部樣式表時要使用的元素。此模塊定義的元素和屬性是−樣式。
樣式屬性模塊(已棄用)−它定義樣式屬性。
連結模塊−它定義了可用於定義指向外部資源的連結的元素。它支持連結元素。
基本模塊−它定義了一個元素,該元素可用於定義一個基本URI,根據該URI解析文檔中的相對URI。此模塊中包含的元素和屬性是−base。
Ruby注釋模塊XHTML還使用Ruby中定義的Ruby注釋模塊,並支持Ruby、rbc、rtc、rb、rt和rp。
Changes from XHTML 1.0 Strict
本節描述了XHTML1.1和XHTML1.0strict之間的區別。XHTML1.1表示與HTML4和XHTML1.0的背離。
最重要的是刪除了被棄用的功能。
這些變化可以概括爲以下幾點;
在每個元素上,lang屬性都已被刪除,取而代之的是xml:lang屬性。
在<a>和<map>元素上,已刪除name屬性,而不是id屬性。
添加了元素的ruby集合。
XHTML - Tips & Tricks
本章列出了編寫XHTML文檔時應注意的各種技巧和技巧。這些技巧和技巧可以幫助您創建有效的文檔。
Tips for Designing XHTML Document
下面是一些設計XHTML文檔的基本準則−
Design for Serving and Engaging Your Audience
當你想滿足你的聽衆的需求時,你需要設計出有效的、吸引人的文檔來達到目的。您的文檔應該易於查找所需信息並提供熟悉的環境。
例如,院士或醫學從業者對帶有長句、複雜圖表、特定術語等的期刊式文檔很滿意,而上學兒童訪問的文檔必須簡單且信息豐富。
Reuse Your Document
重複使用以前創建的成功文檔,而不是每次打包新項目時都從頭開始。
Inside the XHTML Document
下面是關於XHTML文檔中元素的一些提示−
The XML Declaration
在所有XHTML文檔中不需要XML聲明,但強烈建議XHTML文檔作者在其所有文檔中使用XML聲明。當文檔的字符編碼不是默認的UTF-8或UTF-16時,需要這樣的聲明。
Empty Elements
它們在空元素的尾隨/和>之前包含一個空格。例如,<br/>、<hr/>和<img src=「/html/xhtml.gif」alt=「xhtml」/>。
Embedded Style Sheets and Scripts
如果樣式表使用「<」、「&」、「]]>」或「-」,請使用外部樣式表。
如果腳本使用「<」、「&」或「]]>」或「-」,請使用外部腳本。
Line Breaks within Attribute Values
在屬性值中避免換行和多個空白字符。不同的瀏覽器對這些問題的處理不一致。
Isindex Element
文檔頭中不要包含多個isindex元素。isindex元素被棄用,取而代之的是input元素。
The lang and xml:lang Attributes
在指定元素的語言時,同時使用lang和xml:lang屬性。xml:lang屬性的值優先。
Element Identifiers
XHTML 1.0不贊成使用applet、form、frame、iframe、img、和map元素的name屬性。它們將在後續版本中從XHTML中刪除。因此,開始使用id元素進行元素標識。
Using Ampersands in Attribute Values
與號字符(「&」)應顯示爲實體引用;。
Example
<!-- 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
Whitespace Characters in HTML and XML
HTML文檔中的某些合法字符在XML文檔中是非法的。例如,在HTML中,表單提要字符(U+000C)被視爲空白,在XHTML中,由於XML對字符的定義,它是非法的。
Named Character Reference &Apos;
命名字符引用'(撇號,U+0027)是在XML 1.0中引入的,但不出現在HTML中。因此,Web開發人員應該使用&39;而不是'在HTML4 Web瀏覽器中按預期工作。
XHTML - Validations
每個XHTML文檔都根據文檔類型定義進行驗證。在正確驗證XHTML文件之前,必須在文件的第一行或第二行添加正確的DTD。
一旦您準備好驗證XHTML文檔,就可以使用W3C驗證器
文本框中的以下語句顯示了詳細信息。你需要付出
在下面的框中輸入您的頁面地址;
此驗證器檢查各種格式的web文檔的標記有效性,特別是在HTML、XHTML、SMIL、MathML等格式中。
還有其他工具可以執行不同的其他驗證。
XHTML - Summary
我們假設您已經理解了與XHTML相關的所有概念。因此,您應該能夠將HTML文檔寫入格式良好的XHTML文檔中,並獲得網站的更乾淨版本。
Converting HTML to XHTML
您可以將現有的HTML網站轉換爲XHTML網站。
讓我們經歷一些重要的步驟。若要轉換現有文檔,必須首先確定要遵循的DTD,並在文檔頂部包含文檔類型定義。
確保您擁有所有其他必需的元素。其中包括表示XML命名空間的根元素<html>、元素<head>中包含的元素<title>和元素<body>。
將所有元素關鍵字和屬性名轉換爲小寫。
確保所有屬性都採用name=「value」格式。
確保所有容器元素都有結束標記。
在所有獨立元素中放置正斜槓。例如,將所有<br>元素重寫爲<br/>。
將客戶端腳本代碼和樣式表代碼指定爲CDATA節。
XHTML Upcoming Versions
儘管如此,XHTML仍在改進,下一個版本的XHTML 1.1已經起草完畢。我們已經在XHTML版本1.1一章中對此進行了詳細討論。
XHTML Tags, Characters, and Entities
XHTML標記、字符和實體與HTML相同,所以如果您已經知道HTML,那麼就不需要花額外的精力來學習這些主題,特別是對於XHTML。我們還列出了所有的HTML內容以及XHTML教程,因爲它們也適用於XHTML。
What is Next?
我們已經列出了XHTML和HTML的各種資源,因此如果您感興趣並且手頭有時間,我們建議您閱讀這些資源,以增強對XHTML的理解。否則,本教程必須提供足夠的知識來使用XHTML編寫web頁面。