如何格式化和压缩 HTML 代码

· 5 分钟阅读

HTML 格式化和压缩是相反的操作,服务于不同的目的。格式化使代码对开发人员可读。压缩使其对浏览器变小。大多数项目都需要两者:开发中使用格式化代码,生产中使用压缩代码。同样的原则适用于您可能也使用的相关姊妹工具:CSS 格式化器/压缩器、JavaScript 格式化器/压缩器、JSON 格式化器。模式相同;只是语法不同。

格式化:使 HTML 可读

格式化器接受压缩或杂乱的 HTML,并添加适当的缩进、换行和一致的间距。这使结构一目了然。

之前:

<div class="card"><h2>标题</h2><p>这里有一些文本</p><a href="/link">阅读更多</a></div>

之后:

<div class="card">
  <h2>标题</h2>
  <p>这里有一些文本</p>
  <a href="/link">阅读更多</a>
</div>

如何格式化 HTML

  1. 粘贴您的 HTML:将杂乱或压缩的代码输入格式化器。
  2. 设置偏好:选择缩进大小(2 或 4 个空格)以及是否保留内联标签。
  3. 复制结果:格式化的 HTML 已准备好用于您的编辑器。

压缩:使 HTML 变小

压缩器删除浏览器不需要的所有内容:空白、注释、可选的闭合标签和冗余的属性值。结果是单个紧凑的字符串。

如何压缩 HTML

  1. 粘贴您的格式化 HTML:输入带缩进、注释和空白的代码。
  2. 配置选项:选择是否删除注释、折叠空白和优化属性。
  3. 复制压缩输出:在您的生产构建中使用它。

何时使用各项

情况使用
编写和编辑代码格式化
代码审查和调试格式化
部署到生产压缩
分享代码片段格式化
电子邮件模板压缩(更小的负载)
在 JSON 或 YAML 中嵌入 HTML压缩(避免转义问题)
粘贴到 Stack Overflow 或文档格式化

HTML 压缩简史

HTML 于 1991 年被设计为人类可读,因此原始规范(和 1995 年的 HTML 2.0)没有为压缩做规定。压缩的想法首先从 CSS 和 JavaScript 中诞生:Douglas Crockford 的 JSMin(2001)是第一个广泛使用的 JavaScript 压缩器,删除注释和空白以减少拨号用户的文件大小。HTMLMin(npm 包)于 2009 年随后出现,然后是 htmlmin(Python)于 2013 年。现代构建工具(Webpack 2014、Vite 2020、esbuild 2020)将 HTML 压缩作为默认生产步骤。

Gzip 压缩(1999 年作为 HTTP 内容编码引入)和 Brotli(2015)压缩服务器发送的任何内容,这意味着压缩的 HTML 压缩到与格式化版本几乎相同的大小。那么为什么要压缩呢?因为压缩后的压缩版本仍然比压缩后的格式化版本小,大约 5-15%。在高流量网站上数百万次页面加载中,这加起来是真正的带宽节省,对于慢速连接用户来说是更快的首字节时间。

压缩实际删除什么

您通常在压缩器中看到的设置:

输出不再是人类可读的,但在功能上与输入相同。

常见陷阱

何时使用一个 vs 另一个

在以下情况使用格式化器:

在以下情况使用压缩器:

隐私和机密代码

格式化器和压缩器都完全在您的浏览器中运行。您粘贴的 HTML 保留在您的设备上;没有任何东西被上传。这对包含机密内容的 HTML 很重要:发布前的营销页面、内部管理仪表板、NDA 下的客户模板、揭示业务逻辑的占位符数据的部分模板。云 HTML 工具(大多数在线美化器)要求将您的 HTML 上传到他们的服务器,这正是您希望避免的敏感标记。

提示

常见问题

格式化或压缩会改变页面渲染方式吗?

不会。浏览器会忽略 HTML 中多余的空白。格式化和压缩后的 HTML 视觉上产生相同的结果。格式化是给开发者的,压缩是为了性能。

压缩能节省多少大小?

通常 10–30%,取决于原始 HTML 中空白和注释的多少。100 KB 的文件可节省 10–30 KB,在数千次页面加载中累积起来就很可观。

行内 CSS 和 JavaScript 怎么处理?

HTML 格式化器和压缩器处理 HTML 结构。为了获得最佳效果,请用专门的工具分别压缩 CSS 和 JavaScript。

我的代码会发送到服务器吗?

不会。格式化和压缩都完全在您的浏览器中进行。您的代码从不离开您的设备。