Skip to content

HTML XHTML

XHTML 是 HTML 的一种重构,是一种更严格的、基于 XML 的语言。虽然在历史上很重要,但现代 Web 开发主要使用 HTML5。

  • XHTML 是 EXtensible HyperText Markup Language(可扩展超文本标记语言)的缩写。
  • 它旨在使 HTML 更具可扩展性,并提高与其它基于 XML 数据格式的互操作性。
  • 与早期 HTML 版本相比,XHTML 强制执行更严格的语法规则。
  • 它要求文档是“良好格式”的 XML,这意味着语法错误通常会阻止页面渲染。
  • 主流浏览器支持 XHTML,但它从未完全取代 HTML。

XHTML 的发展部分是为了应对网络上普遍存在的编写拙劣(“标签汤”)的 HTML。浏览器在解析不正确的 HTML 时非常宽松,导致不一致性。

其想法是,更严格的、基于 XML 的语法将:

  • 鼓励编写更清晰、更一致的代码。
  • 使页面更容易被机器(如早期的移动设备或屏幕阅读器)可靠地解析。
  • 使 HTML 与不断发展的 XML 技术生态系统保持一致。

然而,严格的 XML 解析要求(在使用 application/xhtml+xml MIME 类型服务时)对许多 Web 开发者来说很困难,并且并未被广泛采用。

尽管今天很少将页面编写并以严格的 XHTML 形式提供,但其许多语法规则已成为现代 HTML5 开发中的最佳实践(即使在以 text/html 形式提供时):

关键语法规则(HTML5 中的最佳实践):

Section titled “关键语法规则(HTML5 中的最佳实践):”
  • 正确嵌套: 元素必须按照与打开顺序相反的顺序闭合。(例如,**<i>text</i>** 是正确的,**<i>text**</i> 是不正确的)。
  • 闭合标签: 非空元素必须有闭合标签(例如,<p>段落</p>)。
  • 闭合空元素: 空元素(如 <img>, <br>, <hr>, <input>)应使用 /> 自闭合(例如,<hr/>, <img src="..." alt="..."/>),或者只有起始标签(HTML5 解析器两者都支持,但自闭合通常更推荐以提高清晰度,借鉴了 XHTML)。
  • 小写标签和属性: 所有元素和属性名称都使用小写(例如,<img src="..." alt="..."> 而不是 <IMG SRC="..." ALT="...">)。
  • 加引号的属性值: 属性值必须始终用引号括起来(例如,width="100" 而不是 width=100)。
  • 无属性最小化: 布尔属性应包含属性值(例如,<input type="checkbox" checked="checked"/> 或在 HTML5 中仅写 <input type="checkbox" checked>,而不是 <input type="checkbox" checked>)。HTML5 允许简写语法 (checked),但 XHTML 要求完整形式。

关键区别在于 HTML5 解析器比严格的 XML 解析器更宽容。HTML5 中的少量语法错误通常不会阻止页面渲染,而在以 XML 形式提供的 XHTML 中则会。

HTML5 大大简化了 DOCTYPE 声明。它是必需的,以确保浏览器以标准模式渲染页面:

<!DOCTYPE html>

这个简单的 DOCTYPE 用于所有 HTML5 文档,取代了 XHTML 所需的基于 DTD 的复杂 DOCTYPE。

遵循最佳实践的最小 HTML5 文档结构:

<!DOCTYPE html>
<html lang="en"> <!-- Use lang attribute for accessibility -->
<head>
<meta charset="UTF-8"> <!-- Specify character encoding -->
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Responsive design -->
<title>Document Title</title>
</head>
<body>
<h1>Page Content</h1>
<p>This is a paragraph.</p>
<img src="image.jpg" alt="Description of image"/> <!-- Self-closed empty element -->
</body>
</html>

专注于编写格式良好、有效的 HTML5。遵循继承自 XHTML 的更严格的语法规则作为代码清晰度、可维护性和兼容性的最佳实践。

除非有特定原因并了解严格错误处理的影响,否则避免将页面以 application/xhtml+xml 形式提供。

您可以使用官方的 W3C 标记验证服务验证您的 HTML5 代码:https://validator.w3.org/