這篇文章主要闡述 HTML 和 XHTML 的區(qū)別。簡(jiǎn)單來(lái)說(shuō),XHTML 可以認(rèn)為是 XML 版本的 HTML,為符合 XML 要求,XHTML 語(yǔ)法上要求更嚴(yán)謹(jǐn)些。

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

XHTML 要求正確嵌套

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

XHTML 區(qū)分大小寫

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

XHTML 用 id 屬性代替 name 屬性

XHTML 特殊字符的處理

    XHTML 要求正確嵌套

    以下是正確的嵌套:

    <p>設(shè)計(jì)之家<strong>更新速度最快</strong>。</p>

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

    <p>設(shè)計(jì)之家<strong>更新速度最快</p></strong>。

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

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

    比如:

    <p>設(shè)計(jì)之家。

    應(yīng)該寫成:

    <p >設(shè)計(jì)之家 。</p>

    處理空元素

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

    以下 是空元素的例子:

    <br />

    <hr />

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

    <Pnk rel="stylesheet" href="/styles/webjx.css" type ="text/css" />

    <meta http-equiv="content -type" content="text/html; charset=UTF-8" / >

    XHTML 區(qū)分大小寫

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

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

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

    比如:

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

    應(yīng)該寫成:

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

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

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

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

    <table cellspacing = 0>

    <input checked >

    的幾大區(qū)別:HTML 4 .01 相比實(shí)在沒(méi)有什么不同?

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

    <table cellspacing = "0 ">

    <input checked = "checked" / >

    XHTML 用 id 屬性代替 name 屬性

    HTML 很多元素,比如 a,applet,frame,iframe,img 和 map,有 name 屬性。在 XHTML 里是要廢除的,而用 id 屬性取而代之。

    比如:

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

    應(yīng)該寫成:

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

    XHTML 特殊字符的處理

    & 應(yīng)該在 XHTML 里應(yīng)該寫成 &。

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

    比如:

    You & Me

    應(yīng)該寫成:

    You & Me

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

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

    ...

    //]]></script>

    瀏覽器的角度

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

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

    從瀏覽器的角度看待上面幾個(gè)不同,大致 是下面的測(cè)試結(jié)果(IE 和Firefox我都測(cè)試過(guò)):

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

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

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

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

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

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

      XHTML 里應(yīng)該寫成 &。以下是正確的嵌套。

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

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

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

      <p class="Hello"> ......

      而你使用的時(shí)候?qū)懗?,如果從瀏覽器的角度來(lái)看待這個(gè)問(wèn)題 。

      那這個(gè)CSS是不會(huì)被使用的。要積極的看待這個(gè)問(wèn)題,這讓你可以用更多的名字來(lái)命名 Style,是一個(gè)好事。

      XHTML 標(biāo)準(zhǔn)的前途

      從標(biāo)準(zhǔn)制定者的初衷看,制定 XHTML 標(biāo)準(zhǔn)是試圖把 HTML 規(guī)范成為嚴(yán)格的 XML 格式,這樣無(wú)可避免的會(huì)導(dǎo)致一個(gè)結(jié)果,就是從 HTML 到 XHTML 的升級(jí)導(dǎo)致標(biāo)準(zhǔn)的容錯(cuò)能力降低了。把自己的網(wǎng)頁(yè)源文件寫得嚴(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í)通過(guò)一些工具來(lái)檢查代碼的合法性,雖然對(duì)于用戶而言,制作出來(lái)的網(wǎng)頁(yè)和 HTML 4.01 相比實(shí)在沒(méi)有什么不同。對(duì)于你寫新的網(wǎng)頁(yè)來(lái)說(shuō),使用 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ù)上說(shuō)非常純凈,但是對(duì)于瀏覽器而言,則是個(gè)呆板、笨拙、不可理喻的標(biāo)準(zhǔn)。所以目前所有由人類開發(fā)的瀏覽器都沒(méi)有遵照所謂純凈的 XHTML 1.1的標(biāo)準(zhǔn),你的代碼只要瀏覽器能讀懂,他都會(huì)很好的顯示出來(lái),而不跳出彈框報(bào)錯(cuò)。

      應(yīng)該寫成::應(yīng)該寫成:以下是 XHTML 相對(duì) !

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

      標(biāo)簽:HTMLXHTML

      隨機(jī)推薦