HTML与 XHTML

XHTML 是更严格、更基于 XML 的 HTML 版本,本文介绍 XHTML 与 HTML 的区别。

XHTML 是更严格、更基于 XML 的 HTML 版本。

什么是 XHTML?

  • XHTML 是 EXtensible HyperText Markup Language 的缩写
  • XHTML 是更严格、更基于 XML 的 HTML 版本
  • XHTML 是定义为 XML 应用程序的 HTML
  • 所有主流浏览器都支持 XHTML

XHTML 的意义

XML 是一种标记语言,所有文档都必须正确标记(“格式良好”)。

对于 HTML 而言,即使 HTML 在标记中存在一些错误,浏览器会忽略那些错误,并尝试显示网页。这并不容易与其他数据格式一起工作。

开发 XHTML 的目的是使 HTML 更具可扩展性和灵活性,以便与其他数据格式(例如 XML)一起使用。XHTML 带有更严格的错误处理。

与 HTML 最重要的区别

  • XHTML 中必须声明文档类型 <!DOCTYPE>
  • XHTML <html> 元素必须设定 xmlns 属性
  • XHTML 必须有 <html><head><title><body> 这些元素。
  • XHTML 元素必须始终正确嵌套
  • XHTML 元素必须正确关闭
  • XHTML 元素必须总是小写
  • XHTML 属性名称必须小写
  • XHTML 属性值必须使用引号
  • XHTML 禁止省略属性值

XHTML 例子

这是一个包含最少必需标签的 XHTML 文档: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>文档标题</title>
</head>
<body>
  <!-- 主体内容 -->
</body>
</html>

XHTML 元素必须正确嵌套

在 XHTML 中,元素必须始终正确地相互嵌套,如下所示:

正确的写法:

<b><i>Some text</i></b>

错误的写法:

<b><i>Some text</b></i>

XHTML 元素必须始终关闭

在 XHTML 中,元素必须始终关闭,如下所示:

正确的写法:

<p>这是一个段落。</p>
<p>This is another paragraph</p>

错误的写法:

<p>这是一个段落。
<p>This is another paragraph

XHTML 空元素必须始终关闭

在 XHTML 中,空元素必须始终关闭,如下所示:

正确的写法:

换行: <br />
分割线: <hr />
图片: <img src="happy.gif" alt="Happy face" />

错误的写法:

换行: <br>
分割线: <hr>
图片: <img src="happy.gif" alt="Happy face">

XHTML 元素必须为小写

在 XHTML 中,元素名称必须为小写。

正确的写法:

<body>
<p>这是一个段落。</p>
</body>

错误的写法:

<BODY>
<P>这是一个段落。</P>
</BODY>

XHTML 属性名称必须为小写

在 XHTML 中,属性名称必须为小写。

正确的写法:

<a href="https://www.gobeta.net/tutorials/html/">HTML 教程</a>

错误的写法:

<a HREF="https://www.gobeta.net/tutorials/html/">HTML 教程</a>

XHTML 属性值必须使用引号

在 XHTML 中,属性值必须使用引号。

正确的写法:

<a href="https://www.gobeta.net/tutorials/html/">HTML 教程</a>

错误的写法:

<a href=https://www.gobeta.net/tutorials/html/>HTML 教程</a>

XHTML 禁止省略属性值

在 XHTML 中,禁止省略属性值,每个属性必须赋值。

正确的写法:

<input type="checkbox" name="vehicle" value="car" checked="checked" />
<input type="text" name="lastname" disabled="disabled" />

错误的写法:

<input type="checkbox" name="vehicle" value="car" checked />
<input type="text" name="lastname" disabled />