跳到主要内容

文件格式

什么是 HTML?历史、解析与 DOM

HTML 是描述网页结构的标记语言,几乎每个网站都建立在它之上。本文介绍它的历史、浏览器如何处理它,以及把 HTML 转换为文档时需要注意的地方。

作者: Hemen Dönüştür Editör Ekibi发布日期: 阅读约 7 分钟

带尖括号图标、标有 HTML 字样的文件徽章

你在网上看到的几乎所有内容,包括这个页面,都是用 HTML 写成的。HTML(HyperText Markup Language,超文本标记语言)不是编程语言,而是一种描述文档结构的标记语言:这是标题,这是段落,这是链接,这是表格。HTML 也不只用于网站,它还出现在邮件模板、帮助文档、导出的报表以及“另存为网页”的文档中。本文将介绍 HTML 的历史、浏览器如何读取并在屏幕上绘制它、常见问题,以及把 HTML 文件转换为 Word 或 PDF 时需要注意的地方。

什么是 HTML?

HTML 是一种用标签来标记内容的纯文本语言。标签写在尖括号之间,大多数标签由开始标签和结束标签组成一个元素:

<!DOCTYPE html>
<html lang="zh-Hans">
  <head>
    <meta charset="utf-8">
    <title>示例页面</title>
  </head>
  <body>
    <h1>你好</h1>
    <p>这个段落包含一个<a href="https://example.com">链接</a>。</p>
  </body>
</html>

<head> 部分承载关于页面的信息(字符编码、标题、样式表),<body> 则包含可见的内容。外观通过 CSS 添加,行为通过 JavaScript 添加。在这种分工中,HTML 描述内容是什么,CSS 描述它看起来如何,JavaScript 描述它做什么。

简要历史

HTML 诞生于 Tim Berners-Lee 1989 年在 CERN(欧洲核子研究组织)提出的万维网项目。他的第一个浏览器于 1990 年在一台 NeXT 电脑上运行。这门语言最早的版本与其说是正式标准,不如说是 CERN 记录下来的一份标签清单。此后的重要里程碑如下:

  • 1995 年 11 月,HTML 2.0:由 Tim Berners-Lee 和 Dan Connolly 撰写的 RFC 1866 首次把 HTML 定义为正式标准。
  • 1997 年 1 月,HTML 3.2:W3C 正式认可的跨行业规范版本。
  • 1999 年 12 月 24 日,HTML 4.01:多年来一直是网页的核心规范;W3C 于 2018 年 3 月 27 日正式将其标记为已被取代。
  • 2014 年 10 月 28 日,HTML5:W3C 将 HTML5 发布为推荐标准。视频、音频、语义化分区元素以及精确定义的解析算法随之实现了标准化。
  • 2019 年 5 月 28 日,统一标准:W3C 与由浏览器厂商组成的社区 WHATWG 签署了谅解备忘录。根据备忘录,HTML 和 DOM 主要由 WHATWG 以不带版本号的“Living Standard”(活标准)形式开发。

因此,今天的“HTML5”实际上就是指“当前的 HTML”;官方规范是持续更新的 HTML Living Standard。

它有多普及?根据 W3Techs 2026 年 10 月 15 日的统计,在标记语言已知的网站中,97.8% 使用 HTML。同一来源显示,在字符编码已知的网站中,99.1% 使用 UTF-8。

浏览器如何处理 HTML?

HTML 与其他文档格式的不同之处在于,即使是写得很糟糕的文档,在所有浏览器中也会以相同的方式解读。HTML Living Standard 为此定义了一套详细的解析模型:

  1. 确定编码:浏览器首先必须把收到的字节转换为字符。它会依次检查 BOM、服务器 HTTP 头中声明的编码,以及文档前 1024 个字节中的 <meta charset> 声明;如果都没有找到,就做出有依据的推测。
  2. 词法分析(Tokenization):一个状态机把文本拆分为开始标签、结束标签、注释、DOCTYPE 和字符等记号。
  3. 树构建:记号按照“in body”“in table”等插入模式进行处理。解析器维护一个已打开元素的栈,并按照规定的规则修复嵌套错误的标签。
  4. DOM:最终得到一棵称为文档对象模型(DOM)的对象树。CSS 应用于这棵树,JavaScript 则读取并修改它。

规范明确规定,解析错误的处理方式是严格定义的。例如写 <div/> 时,HTML 会忽略末尾的斜杠,因此后面的元素都会落进这个 div 中。没有闭合的 <p> 会在下一个块级元素出现时自动闭合。正是这种容错性让网页在无数不完美的页面中依然正常运行,但这也意味着任何把 HTML 转换为文档格式的工具都必须遵循同样的规则。

HTML 用在哪里?

  • 网站和网页应用:每个网页的骨架。
  • 电子邮件:带格式的邮件和电子报都是用 HTML 编写的。
  • 文档:帮助页面、软件文档以及由 Markdown 生成的网站。
  • 电子书:EPUB 格式把内容打包为 XHTML 文档。
  • 报表和导出:许多应用以 HTML 生成报表,Word 的“另存为网页”输出也是 HTML。

优点与缺点

优点缺点
在任何设备的浏览器中都能打开外观依赖外部 CSS、字体和图片
开放、免费、持续更新的标准对页面、页边距等印刷概念支持较弱
能适应屏幕尺寸的流式布局难以作为单个文件传递(图片位于单独的文件中)
语义化结构有利于无障碍访问和搜索引擎包含 JavaScript 时需要谨慎
纯文本,非常适合版本控制不如 PDF 适合固定最终版本

哪些程序可以打开 HTML?

Chrome、Firefox、Safari 和 Edge 等所有浏览器都能显示 HTML。要编辑源代码,用 Visual Studio Code 这样的代码编辑器或任何文本编辑器就够了。Microsoft Word 和 LibreOffice Writer 可以打开 HTML 文件并作为文档编辑,不过复杂的 CSS 布局会被简化。

常见问题及解决方法

特殊字符显示为乱码

页面的编码缺失或错误。在 <head> 靠前的位置加上 <meta charset="utf-8">,并确认文件确实以 UTF-8 保存。如果服务器声明了不同的编码,也要修正 HTTP 头。

保存的网页没有图片和样式

HTML 文件经常从单独的文件或互联网地址加载图片和 CSS。只移动 .html 文件,这些链接就会失效。请使用浏览器的“网页,完整”保存选项,或者把图片嵌入文档中。

打印时页面错乱

为屏幕设计的布局可能无法适应纸张。在 CSS 中定义 @media print 规则,并用 @page 设置纸张尺寸和页边距,可以大大改善打印效果。

HTML 文件转换技巧

在我们的转换器上,HTML 文件会上传到我们的服务器,并在 30 分钟内删除。读取文件时,编码依次根据 BOM、<meta charset> 声明和内容本身来检测;不是 UTF-8 的旧版土耳其语页面会按 Windows-1254 读取。文档的 <body> 内容和页面的 <style> 块会被保留,没有 <body> 标签的 HTML 片段按原样处理。

  • HTML 转 PDF 在浏览器引擎中运行:会应用打印 CSS,遵循 @page 定义的页面尺寸(否则为 A4),并打印背景色。出于安全考虑,不会执行 JavaScript,也不会下载互联网上的图片、字体或样式表;只使用嵌入在文档中的资源(data: URI)。如果希望输出中包含图片,请把它们嵌入 HTML。
  • HTML 转 Word 使用 LibreOffice 把标题、列表、表格、对齐方式和嵌入图片转入 DOCX。复杂的 CSS 布局(flex、grid)在 Word 中没有对应项,会被简化。
  • HTML 转 Markdown 非常适合把网页或帮助文章迁移到文档仓库:标题、强调、列表、表格、链接和代码块会保留,样式信息会被去掉。
  • 反方向上,Word 转 HTML 会把图片嵌入文件,生成一个声明了字符编码的、独立完整的 HTML 文档,因此中文和带重音的字符都能在浏览器中正确显示。

常见问题

HTML 是编程语言吗?

不是。HTML 是标记语言:它描述内容的结构,但没有循环、条件或计算。要为页面添加行为,需要使用 JavaScript。

HTML5 和 HTML 有什么区别?

HTML5 是 2014 年成为 W3C 推荐标准的那个主要版本的名称。自 2019 年起,HTML 由 WHATWG 以“HTML Living Standard”的形式开发,不再有版本号。实际上,今天 HTML5 和 HTML 指的是同一个东西。

怎么打开 HTML 文件?

双击即可在默认浏览器中打开。要查看源代码,可以用文本编辑器打开文件,或者使用浏览器的“查看网页源代码”选项。

为什么 HTML 转 PDF 后图片不见了?

如果图片是从互联网地址加载的,我们的转换器出于安全考虑不会下载它们。请把图片以 data: URI 的形式嵌入 HTML,或者先把文档转换为 Word,再在其中添加图片。

打开 HTML 文件安全吗?

HTML 可以包含 JavaScript,因此对来源不明的文件要谨慎。以邮件附件形式发来、要求输入密码的 HTML 页面,是一种常见的网络钓鱼手法。

参考资料

相关转换工具

全部文章