如何將你的網(wǎng)站升級(jí)至 XHTML ?

2021-12-06 13:49 更新

首先我們?yōu)槭裁匆獙⒕W(wǎng)站升至XHTML,因?yàn)閄HTML是一種更加嚴(yán)格和更加純凈的HTML版本,它是由XML和HTML組合而成的,XML是用來(lái)裝載數(shù)據(jù)的,標(biāo)簽必須被正確地標(biāo)記,而HTML是用來(lái)顯示數(shù)據(jù)的,因此將兩者的長(zhǎng)處結(jié)合起來(lái),就有了XHTML。在一般的網(wǎng)站中,有部分的代碼沒(méi)有按照HTML的規(guī)則也依舊可以運(yùn)行,這樣子不利于文檔的維護(hù),導(dǎo)致不良的文檔結(jié)構(gòu)形式,而XHTML是W3C的一種標(biāo)準(zhǔn),它的目標(biāo)就是逐漸替代HTML版本的,而且現(xiàn)代的瀏覽器完全支持XTHML,現(xiàn)在以及以后的發(fā)展趨勢(shì)也會(huì)以XHTML為準(zhǔn),所以將網(wǎng)站升至XHTML是一種必然的趨勢(shì)。


為了將站點(diǎn)從 HTML 轉(zhuǎn)換為 XHTML,你首先應(yīng)該熟悉前幾章講解的 XHTML 語(yǔ)法規(guī)則


從 HTML 轉(zhuǎn)換為 XHTML的具體步驟:

  1. 添加文件類型說(shuō)明
  2. 小寫的標(biāo)簽和屬性名
  3. 給所有屬性加上引號(hào)
  4. 空標(biāo)簽:<hr> , <br>  <img>
  5. 驗(yàn)證站點(diǎn)


仔細(xì)地遵循W3C的兼容性準(zhǔn)則,用戶代理(Web瀏覽器)應(yīng)該能夠像HTML或XHTML一樣輕松地解釋文檔。


一、添加文件類型說(shuō)明


將下面的文件類型聲明復(fù)制到文檔的首行:

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

注意:本站 (W3Cschool) 使用的是嚴(yán)格的 DTD。對(duì)于初學(xué)者來(lái)說(shuō),我們可以使用transitional(過(guò)渡)類型的,因?yàn)槭褂胹trict(嚴(yán)格)類型可能就顯得有點(diǎn)"嚴(yán)格"了。


關(guān)于文件類型聲明的一點(diǎn)提示

如果你希望將頁(yè)面驗(yàn)證為正確的 XHTML,那么頁(yè)面中必須含有文件類型聲明。

需要注意的是,根據(jù)不同的文件類型聲明,新式的瀏覽器對(duì)文檔的處理方式也是不同的。如果瀏覽器讀到一個(gè)文件類型聲明,那么它會(huì)按照“恰當(dāng)”的方式來(lái)處理文檔。如果沒(méi)有了DOCTYPE,文檔或許以不同的方式顯示出來(lái)。


二、小寫的標(biāo)簽和屬性名


由于 XHTML 對(duì)大小寫敏感,同時(shí)也由于 XHTML 僅接受小寫 HTML 標(biāo)簽和屬性名,因此你可以執(zhí)行一個(gè)簡(jiǎn)單的搜索和替換命令將所有的大寫標(biāo)簽改為小寫。對(duì)屬性名也要做同樣的處理。我們一直在自己的網(wǎng)站使用小寫字母,因此基本上,替換功能沒(méi)有太多地派上用場(chǎng)。


三、給所有屬性加上引號(hào)


由于 W3C XHTML 1.0 標(biāo)準(zhǔn)中要求所有的屬性值都必須加引號(hào),所以,如果以前沒(méi)有注意到這個(gè)細(xì)節(jié),你需要逐頁(yè)地對(duì)網(wǎng)站進(jìn)行檢查。這是一項(xiàng)費(fèi)時(shí)的工作,所以絕不要再忘記為屬性值加引號(hào)了。


四、空標(biāo)簽:<hr> , <br> 和 <img>


在 XHTML 中是不允許使用空標(biāo)簽(Empty tags)的。<hr><br> 標(biāo)簽應(yīng)該被替換為 <hr /><br />。

這樣做又產(chǎn)生了一個(gè)新問(wèn)題,Netscape 會(huì)誤讀 <br/> 標(biāo)簽。我們不清楚原因所在,不過(guò)將之改為 <br />后就沒(méi)有問(wèn)題了。認(rèn)識(shí)到這一點(diǎn)后,你需要再一次通過(guò)搜索和替換功能對(duì)標(biāo)簽進(jìn)行更改。

其他一些標(biāo)簽(比如 <img> 標(biāo)簽)也會(huì)碰到上述同樣的問(wèn)題。不要使用閉合標(biāo)簽來(lái)關(guān)閉 <img>,而是要在標(biāo)簽的末端添加 / >。


五、驗(yàn)證站點(diǎn)


做完所有這一切以后,使用下面的鏈接根據(jù)官方的 W3C DTD 對(duì)所有修改過(guò)的頁(yè)面進(jìn)行驗(yàn)證:XHTML Validator。接下來(lái),可能還會(huì)有少數(shù)的錯(cuò)誤被發(fā)現(xiàn),逐一對(duì)這些錯(cuò)誤進(jìn)行(手工地)修正。我們的經(jīng)驗(yàn)是,最容易犯的錯(cuò)誤是在列表中漏掉了 </li> 標(biāo)簽。

我們應(yīng)該使用轉(zhuǎn)換工具嗎(比方說(shuō) TIDY)?對(duì),我們本可以使用 TIDY。

Dave Raggett 的 HTML TIDY是用來(lái)清理HTML代碼的免費(fèi)工具。在處理那些由專門的 HTML 代碼編輯器和轉(zhuǎn)換工具生成的難以閱讀的HTML代碼方面,TIDY 還是做得很棒的。同時(shí),它可以幫助你發(fā)現(xiàn)站點(diǎn)中哪些地方需要投入更多精力,使得對(duì)于殘疾人士,網(wǎng)頁(yè)具有更強(qiáng)的易用性。

我們沒(méi)有使用 Tidy 是出于什么原因呢?當(dāng)我們開始創(chuàng)建這個(gè)網(wǎng)站時(shí),我們已經(jīng)對(duì) XHTML 非常地熟悉。當(dāng)時(shí)我們已經(jīng)知道使用小寫標(biāo)簽以及為屬性加引號(hào)。所以在網(wǎng)站測(cè)試的過(guò)程中,我們只是簡(jiǎn)單地通過(guò) W3C 的 XHTML 驗(yàn)證器進(jìn)行了測(cè)試,并修正了少許的錯(cuò)誤。更重要的是,我們已經(jīng)學(xué)到了很多關(guān)于編寫 Tidy 式 HTML 代碼的知識(shí)。


注意:


  1. XHTML文件的開始要聲明DTD。
  2. 你需要為你的<html>標(biāo)簽添加一個(gè)命名空間。
    關(guān)于DTD和命名空間的內(nèi)容請(qǐng)參照XHTML教程——XHTML DTD。
  3. 所有的標(biāo)簽和標(biāo)簽的屬性都必須小寫,屬性值可以大寫。
  4. 屬性值必須用引號(hào)括起來(lái)。單引號(hào)雙引號(hào)均可。
  5. 所有的標(biāo)簽都必須被關(guān)閉,空標(biāo)簽也不例外。關(guān)閉空標(biāo)簽的方法如下:
    HTML中的<br />要寫成<br/>。注意,后面加了一個(gè)空格” “和一個(gè)反斜杠”/“。
  6. 如果你使用的是strict.dtd。也就是最嚴(yán)格的XHTML,那么許多定義外觀的屬性都將不被允許。
    例如你為圖片添加鏈接的同時(shí)想去掉邊框。不可以再使用<img src="..."border="0">,而是必須通過(guò)CSS來(lái)實(shí)現(xiàn)。我們推薦您在使用strict.dtd時(shí),舍棄所有的定義外觀屬性,而完全使用CSS來(lái)定義頁(yè)面外觀。
  7. 每個(gè)圖片都應(yīng)該提供alt文本。

課外閱讀


如果您希望更深入的理解利用 XHTML 對(duì)頁(yè)面進(jìn)行結(jié)構(gòu)化的知識(shí),請(qǐng)閱讀《XHTML 結(jié)構(gòu)化》。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)