淺析HTML和XHTML的區(qū)別

2010-08-28 10:52:19來源:西部e網(wǎng)作者:

      HTML 和 XHTML 的區(qū)別簡單來說,XHTML 可以認(rèn)為是 XML 版本的 HTML,為符合 XML 要求,XHTML 語法上要求更嚴(yán)謹(jǐn)些。

  以下是 XHTML 相對(duì) HTML 的幾大區(qū)別:

  XHTML 要求正確嵌套

  XHTML 所有元素必須關(guān)閉

  XHTML 區(qū)分大小寫

  XHTML 屬性值要用雙引號(hào)

  XHTML 用 id 屬性代替 name 屬性

  XHTML 特殊字符的處理

  XHTML 要求正確嵌套

  以下是正確的嵌套:


<p>網(wǎng)頁陶吧<strong>網(wǎng)頁學(xué)習(xí)者之家strong>。</p>


  以下是錯(cuò)誤的嵌套:


<p>網(wǎng)頁陶吧<strong>網(wǎng)頁學(xué)習(xí)者之家</p></strong>。


  XHTML 所有元素必須關(guān)閉


在 HTML 中 ,比如<p>,<li> ,這些標(biāo)記,你可以不寫</p>,</li>,但是在 XHTML 里,必須要求寫關(guān)閉標(biāo)記 (Closing Tag)。

  處理空元素


有些空元素 ,在 XHTML 里的寫法是在">"之前加空格和斜杠。比如<br>,應(yīng)該寫成<br />。


  以下 是空元素的例子:

<br /> 
<hr /> 
<img src = "/images/adpics/1/b027.jpg" alt = "cwdn" /> 
<link rel="stylesheet" href="/styles/cwdn.css" type ="text/css" /> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" / > 

  XHTML 區(qū)分大小寫

  HTML 不區(qū)分大小寫,但是 XHTML 是區(qū)分大小寫的。

  XHTML 語法上要求更嚴(yán)謹(jǐn)些。要積極的看待這個(gè)問題。

  XHTML 的所有標(biāo)記和屬性都要小寫。

  比如:


<IMG SRC = "/images/adpics/1/b027 .jpg" Alt = "cwdn" /> 


  應(yīng)該寫成:


<img src = "/images/adpics/1/b027.jpg" alt = "cwdn" /> 


  XHTML 屬性值要用雙引號(hào)情況就有所不同。并不強(qiáng)制要求屬性值加雙引號(hào)?

  HTML 并不強(qiáng)制要求屬性值加雙引號(hào)。比如你可以寫:

<table cellspacing = 0> 
<input checked > 

  但在 XHTML 里,應(yīng)該寫成:

<table cellspacing = "0"> 
<input checked = "checked" />

  XHTML用id屬性代替 name 屬性HTM 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name

  屬性。在 XHTML 里是要廢除的,而用 id 屬性取而代之。

  比如:


<img src="cwdn.gif" name="cwdn logo" /> 


  應(yīng)該寫成:


<img src="cwdn.gif" id="cwdn logo" /> 


  
XHTML 特殊字符的處理& 應(yīng)該在 XHTML 里應(yīng)該寫成 &amp;。


      比如:XHTML 的所有標(biāo)記和屬性都要小寫。


 You & Me  應(yīng)該寫成:  You &amp; Me


  還有如果內(nèi)嵌 Javascript 代碼,在 XHTML 里則應(yīng)該寫成:


<script type="text/javascript">// <![CDATA[//]]></script> 


  瀏覽器的角度

  以上是從協(xié)議標(biāo)準(zhǔn)的角度來看待這個(gè)問題的。如果從瀏覽器的角度來看待這個(gè)問題,情況就有所不同。

  考慮一下,如果把 XHTML 寫得很不嚴(yán)格,瀏覽器會(huì)怎么做?是不是會(huì)彈出一個(gè)對(duì)話框,寫著“這個(gè)網(wǎng)站的開發(fā)人員技術(shù)不過關(guān),寫的不是正宗的XHTML 文件,咱不顯示”?顯然,如果瀏覽器做成這個(gè)樣子,倒貼錢也是不會(huì)有人用的。

  從瀏覽器的角度看待上面幾個(gè)不同,大致是下面的測試結(jié)果:

  XHTML 要求正確嵌套:如果你沒有嵌套,瀏覽器會(huì)試圖幫你嵌套。

  XHTML 所有元素必須關(guān)閉:如果你沒有關(guān)閉,瀏覽器會(huì)試圖幫你關(guān)閉。

  XHTML 區(qū)分大小寫:你非要寫成大寫,瀏覽器幫你轉(zhuǎn)換成為小寫。

  屬性值要用雙引號(hào):你非要不肯加,瀏覽器幫你加。

  特殊字符的處理:You & Me 也好,You & Me 也好 ,瀏覽器都能讀入。

  用 id 屬性代替 name 屬性 :你非要用 name 也可以。

  如果 你在文檔開始用 DocType 指定為 XHTML 了,有一點(diǎn)需要注意。在給Tag 用 class 指定CSS 的時(shí)候,是區(qū)分大小寫的。例如,你定義了一個(gè)CSS如下,


<style>
.hello { ...... }
</style > 


  而你使用的時(shí)候?qū)懗?/P>


 <p class="Hello">


  如果從瀏覽器的角度來看待這個(gè)問題 。 來自那這個(gè)CSS是不會(huì)被使用的。要積極的看待這個(gè)問題,這讓你可以用更多的名字來命名 Style,是一個(gè)好事。

  XHTML 標(biāo)準(zhǔn)的前途從標(biāo)準(zhǔn)制定者的初衷看,制定 XHTML 標(biāo)準(zhǔn)是試圖把 HTML 規(guī)范成為嚴(yán)格的XML 格式,這樣無可避免的會(huì)導(dǎo)致一個(gè)結(jié)果,就是從 HTML 到 XHTML 的升級(jí)導(dǎo)致標(biāo)準(zhǔn)的容錯(cuò)能力降低了。把自己的網(wǎng)頁源文件寫得嚴(yán)格一點(diǎn)當(dāng)然是好事,但是一個(gè)標(biāo)準(zhǔn)不可能去要求瀏覽器降低自己的容錯(cuò)能力。

  XHTML 1 .0 標(biāo)準(zhǔn)是兼容 HTML 4.01,是個(gè)不錯(cuò)的協(xié)議,可以讓開發(fā)者在編寫代碼的同時(shí)通過一些工具來檢查代碼的合法性,雖然對(duì)于用戶而言,制作出來的網(wǎng)頁和 HTML 4.01 相比實(shí)在沒有什么不同。對(duì)于你寫新的網(wǎng)頁來說,使用 XHTML 1.0 還是一個(gè)不錯(cuò)的選擇。

  XHTML 1.1 標(biāo)準(zhǔn)要求瀏覽器不再支持原先的容錯(cuò)能力,這是一個(gè)標(biāo)準(zhǔn)制定者走火入魔的典型例子,這個(gè)標(biāo)準(zhǔn)從學(xué)術(shù)上說非常純凈,但是對(duì)于瀏覽器而言,則是個(gè)呆板、笨拙、不可理喻的標(biāo)準(zhǔn)。所以目前所有由人類開發(fā)的瀏覽器都沒有遵照所謂純凈的 XHTML 1.1的標(biāo)準(zhǔn),你的代碼只要瀏覽器能讀懂,他都會(huì)很好的顯示出來,而不跳出彈框報(bào)錯(cuò)。

  從發(fā)展的趨勢來看,一個(gè)標(biāo)準(zhǔn)沒有瀏覽器服從,等于是沒有意義的標(biāo)準(zhǔn)。從瀏覽器的實(shí)現(xiàn)角度來看,新的協(xié)議只能在原來 HTML 的基礎(chǔ)上擴(kuò)大能力增加容錯(cuò) ,而不能縮小了能力減少容錯(cuò)。所以新的協(xié)議中,只有擴(kuò)大能力增加容錯(cuò)的部分會(huì)被采納,而其他部分都僅僅是紙上談兵而已。

關(guān)鍵詞:網(wǎng)頁

贊助商鏈接: