跳到主内容
UniKit

HTML 格式化

HTML 代码美化压缩含缩进格式化:自研 tokenizer,块级元素缩进、行内元素保持同行、br/img/input 等 void 元素不补结束标签、pre/textarea/script/style 内容原样保留,属性引号规范化且缩进宽度可配。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

格式化结果

在上方输入 HTML,结果会实时显示在这里。

这个工具能做什么

  • 把压缩成一整行的 HTML 邮件、模板或爬取结果展开成带缩进的版本,方便定位嵌套结构。
  • 发布前给 HTML 瘦身:折叠空白、去掉注释、去掉多余引号,得到体积更小的静态页面。
  • 检查别人给的模板里标签有没有写错:属性引号不配对、标签缺少 `>` 都会直接报错。
  • 把 `script` / `style` / `pre` / `textarea` 里的内容原样保住的同时整理外层结构,不用担心里面的代码被改坏。

示例

输入

<div><p>Hello <b>world</b>!</p><p>Second</p></div>

输出

<div>
  <p>Hello <b>world</b>!</p>
  <p>Second</p>
</div>

块级元素各占一行,行内元素(b、span、a…)保持在同一行;br、img、input 这类 void 元素不会补上结束标签。

常见问题

重排空白会改变页面显示吗?

一般情况下不会。HTML 会把连续空白折叠成一个空格,所以块级元素之间的换行与缩进对渲染没有影响。只有 pre、textarea、script、style 的内容是空白敏感的,这四类元素的内容会原样保留。

为什么 br、img、input 没有闭合标签?

它们是 HTML 标准定义的 void 元素,本来就没有结束标签,写了 `</br>` 反而是错的。美化时保留 `<img ...>` 这样的写法,压缩时也不会补 `/>`。

属性引号会被怎么处理?

美化模式统一改成双引号,值里原本的 `"` 会转义成 `&quot;`,没有引号的值(如 `type=text`)会补上引号。压缩模式反过来:值里没有空格、引号和 `<>` 时就去掉引号。

内联脚本和样式会被压缩吗?

不会。script、style、pre、textarea 的内容一律按原样输出,只把它们整体挪到独立的行上,不做任何空白折叠或代码压缩,避免改坏字符串、正则或换行敏感的代码。

支持片段(没有 html/body 的结构)吗?

支持。输入的 HTML 不需要完整文档结构,格式化器按标签层级缩进,遇到没有开始标签的结束标签(HTML 允许省略)会照原样输出而不会报错。

关键词:htmlhtml formatterhtml beautifyhtml minifypretty print htmlhtml 格式化html 美化html 压缩缩进void 元素属性引号代码美化

同类工具