Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

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

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

          • XHTML 要求正確嵌套
          • XHTML 所有元素必須關(guān)閉
          • XHTML 區(qū)分大小寫
          • XHTML 屬性值要用雙引號
          • XHTML 用 id 屬性代替 name 屬性
          • XHTML 特殊字符的處理

          XHTML 要求正確嵌套

          以下是正確的嵌套:

          <p>布啦布啦<strong>獨(dú)樹一幟</strong>。</p>

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

          <p>布啦布啦<strong>獨(dú)樹一幟</p></strong>。

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

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

          比如:

          <p>布啦布啦很認(rèn)真。

          應(yīng)該寫成:

          <p>布啦布啦很認(rèn)真。</p>

          處理空元素

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

          以下是空元素的例子:

          <br />

          <hr />

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

          <link rel="stylesheet" href="/styles/blabla.css" type="text/css" />

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

          XHTML 區(qū)分大小寫

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

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

          比如:

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

          應(yīng)該寫成:

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

          XHTML 屬性值要用雙引號

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

          <table cellspacing = 0>

          <input checked>

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

          <table cellspacing = "0">

          <input checked = "checked" />

          XHTML 用 id 屬性代替 name 屬性

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

          比如:

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

          應(yīng)該寫成:

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

          XHTML 特殊字符的處理

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

          比如:

          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è)對話框,寫著“這個(gè)網(wǎng)站的開發(fā)人員技術(shù)不過關(guān),寫的不是正宗的 XHTML 文件,咱不顯示”?顯然,如果瀏覽器做成這個(gè)樣子,倒貼錢也是不會(huì)有人用的。

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

          • XHTML 要求正確嵌套:如果你沒有嵌套,瀏覽器會(huì)試圖幫你嵌套。
          • XHTML 所有元素必須關(guān)閉:如果你沒有關(guān)閉,瀏覽器會(huì)試圖幫你關(guān)閉。
          • XHTML 區(qū)分大小寫:你非要寫成大寫,瀏覽器幫你轉(zhuǎn)換成為小寫。
          • 屬性值要用雙引號:你非要不肯加,瀏覽器幫你加。
          • 特殊字符的處理:You & Me 也好,You &amp; 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è)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 的升級導(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í)通過一些工具來檢查代碼的合法性,雖然對于用戶而言,制作出來的網(wǎng)頁和 HTML 4.01 相比實(shí)在沒有什么不同。對于你寫新的網(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ù)上說非常純凈,但是對于瀏覽器而言,則是個(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ì)被采納,而其他部分都僅僅是紙上談兵而已。

           
          posted on 2009-12-23 14:08 seal 閱讀(170) 評論(0)  編輯  收藏 所屬分類: web
          主站蜘蛛池模板: 岢岚县| 香港 | 奎屯市| 五河县| 衡阳县| 广河县| 启东市| 澄城县| 衡南县| 石泉县| 那曲县| 五家渠市| 高雄县| 晋州市| 蕉岭县| 巧家县| 沁水县| 阿尔山市| 滕州市| 闻喜县| 务川| 竹北市| 北京市| 芒康县| 潮州市| 海盐县| 延庆县| 万州区| 民县| 乌拉特中旗| 锦屏县| 宜黄县| 佛坪县| 密云县| 仙桃市| 兴仁县| 永靖县| 汾西县| 方正县| 分宜县| 怀宁县|