XTHML是以XML為基礎的HTML語言,元素和屬性沿用HTML4的規格,沒有特別的地方,但是和HTML有以下幾點的差別。
首先必須在文件第1行宣告此文件為XML文件。version屬性定義XML的版本,encoding屬性定義符號化使用的文字碼(Default值為萬用碼UTF-8或UTF-16)。
<?xml version="1.0" encoding="Big5"?>
不同的文檔宣告(Document Type Difinition),可以使用的元素和屬性不同。XHTML1.0的版本可以指定Transitional DTD、Frameset DTD、Strict DTD等3種。但是到XHTML1.1的版本,只保留嚴密型Strict DTD的文檔宣告。因此,建議採用嚴密型Strict DTD的文檔宣告。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
html元素追加xmlns屬性設定XML的Name Space,XHTML 1.0版的Name Space為"http://www.w3.org/1999/xhtml"。加上xml:lang屬性則是設定xml的語言碼,考慮一些沒有對應xml:lang屬性的UA環境,建議也加入lang屬性的設定。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw" lang="zh-tw">
HTML的一些元素(li、p、dt、dd、tr、th、td等元素)不需要終止tag,但是較嚴密的XTHL必須要有終止tag。然而空元素(area、br、hr、img、input、meta等元素)本身就不需終止tag,加上終止tag雖然沒有問題,更簡潔的表示方法就是在開始tag的元素後面加上(/),表示終止。
<ol><li>....<li>...</ol> → <ol><li>....</li><li>...</li></ol> <hr> → <hr />
HTML記述元素和屬性無論是大寫和小寫皆可以,沒有區別。嚴密XML對大小寫都有嚴格的區別,因此XMTML的屬性和元素必須是小寫
<P STYLE = "WIDTH:10PX;">屬性和元素大寫是不會被XHTML接受</P>
HTML的屬性值除了含有(.)、(:)、(_)、(-)等一些符號,不用使用引號括弧起來。但是,XHTML所有的屬性值都必須用使用單引號('')或雙引號("")括弧起來,一般習慣使用雙引號("")。
<p style = "width:10px;">屬性值必須使用引號括弧起來</P>
HTML的一部份的屬性值沒有屬性值(checked、selected、nowrap、disabled、noresize等屬性),但是XHTML必須要有屬性值,其屬性值和屬性名稱相同。
<input type = "radio" checked = "checked" /> <option value = "F" selected= "selected" >F</option>
HTML的一部份的元素(a、applet、frame、form、iframe、frame、map、img等元素)可以使用name屬性,但是XHTML1.0不採用name屬性,將由id屬性取代。
<h3 id = "top">XHTML和HTML</h3> ... <a href="#top">回top</a>
在HTML4.0的規格,為了沒有對應script元素和style元素的UA環境,使用comment宣告<!-- -->跳脫不顯示script和style的內容。XTML則是使用CDATA(Character DATA)section<![CDATA[ ]>,使其變成不會去解析的文字資料。但是目前沒有對應CDATA的環境還很多,因此將script元素和style元素的內容做成外部檔案(例如*.js、*.css檔),從文件中呼叫這些外部檔案的方式,就能夠解決。
<link rel="stylesheet" type="text/css" href="stylesheets/xx.css"/> <script type="text/javascript" src="javascript/xx.js"></script>
在XHTML的部分元素(a、button、form、label、pre等)包含內容有限制,詳細請參照各元素的說明。元素也不可以交錯包含。
<h3>XHTML的限制<p>XHTML的元素不能交錯包含</h3></p>