html與xhtml的不同

Ape55發表於2017-04-13

html與xhtml的不同

XHTML 與 HTML 4.01 標準沒有太多的不同

XHTML 是什麼?

  • XHTML 指可擴充套件超文字標籤語言(EXtensible HyperText Markup Language)。
  • XHTML 的目標是取代 HTML。
  • XHTML 與 HTML 4.01 幾乎是相同的。
  • XHTML 是更嚴格更純淨的 HTML 版本。
  • XHTML 是作為一種 XML 應用被重新定義的 HTML。
  • XHTML 是一個 W3C 標準。

(1)XHTML 元素必須被正確地巢狀

在 HTML 中,某些元素可以像這樣彼此不正確地巢狀:

<b><i>This text is bold and italic</b></i>

在 XHTML 中,所有的元素必須像這樣彼此正確地巢狀:

<b><i>This text is bold and italic</i></b>

提示:在巢狀列表中一個容易犯的錯誤,是忘記內部列表必須位於 li 元素中,就像下面這樣:

這是錯誤的:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  <li>Milk</li>
</ul>

這是正確的:

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

注意:在正確程式碼的例子中,我們在 </ul> 之後插入了一個 </li> 標籤。


2,XHTML 元素必須被關閉,非空標籤必須使用結束標籤。

這是錯誤的:

<p>This is a paragraph
<p>This is another paragraph

這是正確的:

<p>This is a paragraph</p>
<p>This is another paragraph</p>

空標籤也必須被關閉

空標籤也必須使用結束標籤,或者其開始標籤必須使用/>結尾。

這是錯誤的:

A break: <br>
A horizontal rule: <hr>
An image: <img src="happy.gif" alt="Happy face">

這是正確的:

A break: <br />
A horizontal rule: <hr />
An image: <img src="happy.gif" alt="Happy face" />
3,XHTML 元素必須小寫,XHTML 規範定義:標籤名和屬性對大小寫敏感。

這是錯誤的:

<BODY>
<P>This is a paragraph</P>
</BODY>

這是正確的:

<body>
<p>This is a paragraph</p>
</body>
4,XHTML 文件必須擁有一個根元素

所有的 XHTML 元素必須被巢狀於 <html> 根元素中。其餘所有的元素均可有子元素。子元素必須是成對的且被巢狀在其父元素之中。基本的文件結構如下:

<html>
<head> ... </head>
<body> ... </body>
</html>
5,

編寫 XHTML 程式碼需要純淨的 HTML 語法。

更多的 XHTML 語法規則:

  • 屬性名稱必須小寫
  • 屬性值必須加引號
  • 屬性不能簡寫
  • 用 Id 屬性代替 name 屬性
  • XHTML DTD 定義了強制使用的 HTML 元素

屬性名稱必須小寫

這是錯誤的:

<table WIDTH="100%">

這是正確的:

<table width="100%">

屬性值必須加引號

這是錯誤的:

<table width=100%>

這是正確的:

<table width="100%">

屬性不能簡寫

這是錯誤的:

<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>

這是正確的:

<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />

下面是一個 HTML 的簡寫屬性列表,以及在 XHTML 中的改寫:

HTML XHTML
compact compact="compact"
checked checked="checked"
declare declare="declare"
readonly readonly="readonly"
disabled disabled="disabled"
selected selected="selected"
defer defer="defer"
ismap ismap="ismap"
nohref nohref="nohref"
noshade noshade="noshade"
nowrap nowrap="nowrap"
multiple multiple="multiple"
noresize noresize="noresize"

用 id 屬性代替 name 屬性

HTML 4.01 針對下列元素定義 name 屬性:a, applet, frame, iframe, img, 和map。

在 XHTML 中不鼓勵使用 name 屬性,應該使用 id 取而代之。

這是錯誤的:

<img src="picture.gif" name="picture1" />

這是正確的:

<img src="picture.gif" id="picture1" />

重要的相容性提示:

你應該在 "/" 符號前新增一個額外的空格,以使你的 XHTML 與當今的瀏覽器相相容。

語言屬性(lang)

lang 屬性應用於幾乎所有的 XHTML 元素。它定義元素內部的內容的所用語言的型別。

如果在某元素中使用 lang 屬性,就必須新增額外的 xml:lang,像這樣:

<div lang="no" xml:lang="no">Heia Norge!</div>

強制使用的 XHTML 元素

所有 XHTML 文件必須進行檔案型別宣告(DOCTYPE declaration)。在 XHTML 文件中必須存在html、head、body元素,而 title 元素必須位於在 head 元素中。

下面是一個最小化的 XHTML 檔案模板:

<!DOCTYPE Doctype goes here>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Title goes here</title>
</head>

<body>
</body>

</html>

提示:檔案型別宣告並非 XHTML 文件自身的組成部分。它並不是 XHTML 元素,也沒有關閉標籤。

提示:在 XHTML 中,<html> 標籤內的 xmlns 屬性是必需的。然而,即使當 XHTML 文件中沒有這個屬性時,w3.org 的驗證工具也不會提示錯誤。這是因為,"xmlns=http://www.w3.org/1999/xhtml" 是一個固定的值,即使你沒有把它包含在程式碼中,這個值也會被新增到 <html> 標籤中。

原文連線:http://www.w3school.com.cn/xhtml/xhtml_html.asp

相關文章