XHTML 1.0 重點提要: 文件的檢測: http://validator.w3.org/ or http://validator.w3.org/check/referer 檢測程式: http://www.w3.org/People/Raggett/tidy/ 一、文件的 DTD 文件開頭的範例如下: --------------------------------------------- --------------------------------------------- 第一行必須以 XML 標明文件語系編碼,中文 Big5 碼應標為: 接著必須以 DOCTYPE 說明文件的DTD ,有三種,分別是: 嚴謹的: 過渡性的: 框架: 最後則必須使用 標籤,而且應該要加上 xmlns 元素及 lang 元素, xmlns 的值必為 http://www.w3.org/1999/xhtml ,而 lang 元素則表示語系。 必須是 <head> 中第一個出現的元素。 二、標籤及元素的語法 Documents must be well-formed (文件必須是符合文法的) 。 1)標籤必須成巢狀,不可以重疊。 正確: <p>xxx<em>zzz</em>yy</p> 錯誤: <p>xxx<em>zzz</p>yy</em> 2)所有元素及屬性名稱,必須小寫。 以往的 HTML 忽略大小寫的差異,但 XML 對大小寫敏感,因此 XHTML 中,要求所有元素及屬性名稱必須小寫。 3)成對的標籤必須完整使用,不可省略結束的標籤。 而空元素(非成對標籤),必須以 /> 結尾,例如以往的 <br>, <hr>, <img> , 都要改成 <br />, <hr />, <img />。 為了讓某些瀏覽器不致於解讀錯誤,在標籤名稱與結尾的 /> 間,最好空一格。 例如 <p> </p>, <li> </li> 這些成對的標籤,以往可以省略結束的 </p>,</li> ,但 XHTML 中不允許。 正確: <p>xxx</p><p>yyy</p> 錯誤: <p>xxx<p>yyy 正確: <ul> <li>first</li> <li>second</li> </ul> 錯誤: <ul> <li>first <li>second </ul> 4)屬性值必須使用引號括起。 以往的 HTML 中不要求必須括起。 正確: <table rows="3"> 錯誤: <table rows=3> 5)此外, XHTML 也不允許省略屬性的值。 例如 frame 的 noresize , table 的 border , td 的 nowrap 等。 修改方式是將屬性名做為屬性值再寫一次。 正確: <frame noresize="noresize"> 錯誤: <frame noresize> 6)關於 script 或 style 的內容 在 script 或 style 元素中,以加上 CDATA 的宣告,以避免對 <, > 字元的解 讀錯誤。 正確範例: <script> <![CDATA[ ... unescaped script content ... ]]> </script> 三、關於 id 與 name 。 在 HTML 4 中,可使用 name 元素,在 a, applet, form, frame, iframe, img, and map 之中。 而在 XML 中,則使用 id ,因此在 XHTML 中,全部改成使用 id 而不使用 name 。 在文件中,為了同時兼顧 HTML 的向後相容,及 XHTML 的向前相容,建議 id 及 name 同時使用,例如: <a href="xxxx" name="link1" id="link1"> </a> 四、字元編碼 在宣告文件的字元編碼時,可以同時使用 xml 語法 如: <?xml version="1.0" encoding="big5"?> 或是 meta http-equiv 語法, 如: <meta http-equiv="Content-type" content="text/html; charset='big5'" /> 當兩者有衝突時,以 XML 語法為準。