由于XHTML是一個(gè)XML應(yīng)用程序,所以必須改變?cè)诨赟GML的HTML 4中完全合法的某些實(shí)踐。在前面的章節(jié)中你已經(jīng)看到了XHTML語(yǔ)法,所以XHTML和HTML之間的差別非常明顯。以下是XHTML和HTML的比較。
|
HTML | XHTML |
---|---|---|
介紹(來(lái)自維基百科) | HTML(超文本標(biāo)記語(yǔ)言)是創(chuàng)建可以在Web瀏覽器中顯示的網(wǎng)頁(yè)和其他信息的主要標(biāo)記語(yǔ)言。 |
XHTML(可擴(kuò)展超文本標(biāo)記語(yǔ)言)是一系列XML標(biāo)記語(yǔ)言,它們反映或擴(kuò)展了廣泛使用的超文本標(biāo)記語(yǔ)言(HTML)的版本,即HTML頁(yè)面的編寫(xiě)語(yǔ)言。 |
文件擴(kuò)展名 | .html,.htm | .xhtml,.xht,.xml,.html,.htm |
互聯(lián)網(wǎng)媒體類(lèi)型 | text / html | application/ XHTML + xml |
開(kāi)發(fā)商 | W3C和WHATWG | 萬(wàn)維網(wǎng)聯(lián)盟 |
格式的類(lèi)型 | 文檔文件格式 | 標(biāo)記語(yǔ)言 |
從...延伸 | SGML | XML,HTML |
代表 | 超文本標(biāo)記語(yǔ)言 | 可擴(kuò)展的超文本標(biāo)記語(yǔ)言 |
應(yīng)用 | 標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(SGML)的應(yīng)用。 | XML的應(yīng)用 |
功能 | 網(wǎng)頁(yè)是用HTML編寫(xiě)的。 | 擴(kuò)展版本的HTML更嚴(yán)格,基于XML。 |
性質(zhì) | 靈活的框架需要寬松的HTML特定的分析器。 | XML的限制性子集,需要使用標(biāo)準(zhǔn)的XML解析器進(jìn)行解析。 |
起源 | 由Tim Berners-Lee于1987年提出。 | 2000年萬(wàn)維網(wǎng)聯(lián)盟建議書(shū)。 |
版本 | HTML 2,HTML 3.2,HTML 4.0,HTML 5。 | XHTML 1,XHTML 1.1,XHTML 2,XHTML 5。 |
XHTML文檔必須完善
結(jié)構(gòu)良好性是XML引入的一個(gè)新概念。實(shí)質(zhì)上,這意味著所有元素都必須有結(jié)束標(biāo)記,并且必須正確嵌套它們。
正確:嵌套的元素
<p>這是一個(gè)強(qiáng)調(diào)的<em>段落</em>。</p>
錯(cuò)誤:重疊的元素
<p>這是一個(gè)強(qiáng)調(diào)的 <em>段落。</p></em>
在HTML中,某些元素可以省略結(jié)束標(biāo)記。但XML不允許省略結(jié)束標(biāo)記。
正確:終止的元素
<p>這是一個(gè)段落。</p><p>這是另一個(gè)段落</p>
<br><hr/>
錯(cuò)誤:未終止的元素
<p>這是一個(gè)段落。<p>這是另一個(gè)段落。
<br><hr>
所有屬性值(包括數(shù)值)都必須加引號(hào)。
正確:引用屬性值
<td rowspan="3">
不正確:未引用的屬性值
<td rowspan=3>
XML不支持屬性簡(jiǎn)寫(xiě)。 Attribute-value 屬性-值必須全部寫(xiě)入。屬性名稱(chēng)(如compact和checked)不能在沒(méi)有指定值的元素中出現(xiàn)。
正確:非簡(jiǎn)寫(xiě)的屬性
<dl compact="compact">
錯(cuò)誤:簡(jiǎn)寫(xiě)的屬性
<dl compact>
當(dāng)瀏覽器處理屬性時(shí),它執(zhí)行以下操作 -
將一個(gè)或多個(gè)空格字符(包括換行符)映射到單個(gè)單詞空間中。
在XHTML中,腳本(script)和樣式(style)元素不應(yīng)該直接存在“<”和“&”字符; 他們被視為標(biāo)記的開(kāi)始。諸如“<”和“&”的實(shí)體被XML處理器識(shí)別為實(shí)體引用,用于分別顯示“<”和“&”字符。
在CDATA標(biāo)記部分內(nèi)包裝腳本或樣式元素的內(nèi)容可以避免這些實(shí)體的擴(kuò)展。
<script type="text/JavaScript">
<![CDATA[
... 轉(zhuǎn)義的VB或java腳本在這里... ...
]]>
</script>
另一種方法是使用外部腳本和樣式文檔。
XHTML推薦用id屬性替換name屬性。請(qǐng)注意,在XHTML 1.0中,這些元素的名稱(chēng)屬性已被正式棄用,并將在后續(xù)版本的XHTML中被刪除。
HTML和XHTML都有一些具有預(yù)定義和有限值的屬性。例如,輸入元素的type屬性。在HTML和XML中,這些被稱(chēng)為枚舉屬性。在HTML 4下,這些值的解釋是不區(qū)分大小寫(xiě)的,所以TEXT的值相當(dāng)于文本的值。
在XHTML下,這些值的解釋是區(qū)分大小寫(xiě)的,所有這些值都是以小寫(xiě)字母來(lái)定義的。
HTML和XML都允許使用十六進(jìn)制值引用字符。在HTML中,這些引用可以使用&#Xnn; 或者&#xnn; 而且它們是有效的,但在XHTML文檔中,只能使用小寫(xiě)字母,例如&#xnn; 。
所有的XHTML元素都必須嵌套在<html>根元素中。所有其他元素都可以有子元素,它們必須成對(duì)并正確嵌套在其父元素中。
基本的文件結(jié)構(gòu)是:
<!DOCTYPE html....>
<html>
<head> w3cschool編程教程 </head>
<body> hgci.cn </body>
</html>
name
用id
</p>
形式結(jié)束,要么以<br />
形式結(jié)束
關(guān)于XHTML語(yǔ)法將在下節(jié)XHTML 語(yǔ)法規(guī)則中做詳細(xì)說(shuō)明
更多建議: