首頁 > web前端 > css教學 > HTML vs XHTML:比較兩種解析模式

HTML vs XHTML:比較兩種解析模式

Jennifer Aniston
發布: 2025-02-27 08:49:15
原創
935 人瀏覽過
<p>HTML5 解析模式詳解:HTML 與 XML 的差異

<p>HTML5 提供兩種解析模式:HTML 和 XML。選擇哪種模式取決於文檔是否使用 Content-type: text/html 頭部或 Content-type: application/xml xhtml 頭部提供服務,每種模式都有其自身的一套規則。

<p>HTML 解析模式允許更大的靈活性,例如:標籤和屬性不區分大小寫、某些元素的起始和結束標籤可選、屬性無需引號。但是,它要求包含 HTML5 DOCTYPE。

<p>XHTML5 解析模式(也稱為 HTML5 的 XML 語法)更為嚴格,要求所有元素都必須有起始和結束標籤,標籤和屬性區分大小寫,屬性值必須用引號括起來,並且不允許空屬性。此模式還需要包含 XML 命名空間屬性和 Content-type: application/xml xhtml 響應頭部。

<p>HTML 語法

<p>讓我們來看另一個 HTML5 文檔:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Hi</title>
  <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
  <p>
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174061735712724.jpg"  class="lazy" alt="HTML vs XHTML: Comparing Two Parsing Modes " />
    Isn't this a lovely flower?
  </p>
  <p>
    Yes, that is a lovely flower. What kind is it?
  </p>
</body>
</html>
登入後複製
登入後複製
<p>第一行是 DOCTYPE 聲明。與所有 HTML5 標籤一樣,它不區分大小寫。

<p>接下來是 <head> 元素。 <head> 元素通常包含有關文檔的信息,例如標題或字符集。在此示例中,我們的 <head> 元素包含一個 <meta> 元素,用於定義此文檔的字符集。包含字符集是可選的,但您應該始終設置一個,建議使用 UTF-8。

<p>我們的 <head> 元素還包含文檔標題(<title>Hi</title>)。在大多數瀏覽器中,<title> 標籤之間的文本顯示在瀏覽器窗口或選項卡的頂部。

<p>HTML 中的註釋是不會在瀏覽器中呈現的文本片段。它們僅在源代碼中可見,通常用於給自己或同事留下有關文檔的註釋。某些生成 HTML 代碼的軟件程序也可能包含註釋。註釋幾乎可以出現在 HTML 文檔中的任何位置。每個註釋都必須以 <!-- 開頭,以 --> 結尾。

<p>文檔 <head> 也可能包含指向外部資源的 <link> 元素,如下所示。資源可能包括樣式表、favicon 圖片或 RSS 提要。我們使用 rel 屬性來描述文檔與我們鏈接的文檔之間的關係。在本例中,我們鏈接到一個層疊樣式表或 CSS 文件。 CSS 是我們用來描述文檔外觀而不是其結構的樣式表語言。

<p>我們還可以使用 <style> 元素(此處由 <style></style> 分隔)在文件中包含 CSS。但是,使用 <link> 元素允許我們在多個頁面中共享相同的樣式表文件。

<p>順便說一句,<meta><link> 都是空 HTML 元素的示例;我們也可以使用 /> 自閉合它們。例如,<meta charset="utf-8"> 將變為 <meta charset="utf-8"/>,但這並非必要。

<p>“XHTML5”:HTML5 的 XML 語法

<p>HTML5 也可以使用更嚴格的、類似 XML 的語法編寫。您可能記得第一章中 XHTML 1.0 是“HTML 4 作為 XML 1.0 應用程序的改寫”。這對於有時被稱為“XHTML5”的內容並不完全正確。 “XHTML5”最好理解為使用 XML 的語法規則編寫和解析並使用 Content-type: application/xml xhtml 響應頭部提供的 HTML5。

<p>以下規則適用於“XHTML5”:

    <li>所有元素都必須有起始標籤。 <li>具有起始標籤的非空元素必須有結束標籤(例如 <p><li>)。 <li>任何元素都可以使用 /> 自閉合。 <li>標籤和屬性區分大小寫,通常為小寫。 <li>屬性值必須用引號括起來。 <li>禁止使用空屬性(checked 必須改為 checked="checked"checked="true")。 <li>特殊字符必須使用字符實體轉義。
<p>我們的 <html> 起始標籤還需要一個 xmlns(XML 命名空間)屬性。如果我們將上面的文檔改寫為使用 XML 語法,它將如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Hi</title>
  <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
  <p>
    <img src="/static/imghw/default1.png"  data-src="https://img.php.cn/upload/article/000/000/000/174061735712724.jpg"  class="lazy" alt="HTML vs XHTML: Comparing Two Parsing Modes " />
    Isn't this a lovely flower?
  </p>
  <p>
    Yes, that is a lovely flower. What kind is it?
  </p>
</body>
</html>
登入後複製
登入後複製
<p>在這裡,我們使用 xmlns 屬性添加了 XML 命名空間,以告知瀏覽器我們正在使用更嚴格的語法。我們還為我們的空元素 <meta><img alt="HTML vs XHTML:比較兩種解析模式" > 自閉合了標籤。根據 XML 和 XHTML 的規則,所有元素都必須使用結束標籤關閉,或者使用空格、斜杠和右指向的角度括號(/>)自閉合。

<p>在這個例子中,我們也自閉合了我們的 <code>application/xml xhtml。如果您將頁面作為

提供服務,您也可以使用自閉合語法。 <p> Content-type: application/xml xhtml別忘了:為了讓瀏覽器根據 XML/XHTML 規則解析此文檔,我們的文檔必須從服務器發送帶有

響應頭部的文檔。事實上,即使缺少 DOCTYPE,包含此頭部也會在符合標準的瀏覽器中觸發 XHTML5 解析。 <p> text/html您可能已經意識到,XML 解析規則更嚴格。使用

MIME 類型及其較寬鬆的 HTML 語法要容易得多。 <p>

HTML 和 XHTML 常見問題解答 (FAQ)<p>

(此處省略FAQ部分,因為篇幅過長,且與偽原創目標不符。 FAQ部分內容可以根據需要自行添加或修改。)<script> 标签。我们也可以使用普通的 <code><script> 标签,就像我们对其他元素所做的那样。<code><script> 元素有点奇怪。您可以通过将脚本放在 <code><script> 起始和结束标签之间来将脚本嵌入到您的文档中。当您这样做时,您<em>必须包含结束标签。 &lt;p&gt;但是,您也可以使用 <code><script> 标签和 <code>src 属性链接到外部脚本文件。如果您这样做,并且将页面作为 <code>text/html 提供服务,则必须使用结束标签 <code></script>

以上是HTML vs XHTML:比較兩種解析模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板