在线工具AI 产品汇

工具箱 › 开发 › HTML 预览

HTML 格式化与预览

粘一段 HTML 源码即可缩进美化、压缩成一行或转义成实体,并在一侧实时预览渲染结果。脚本与样式内容原样保留,列表与表格的省略闭合标签自动补齐缩进。

0标签数
0输出行数
0输出字符

格式化做了什么

只调整缩进与换行,不改标签、不加标签、不删属性:文本节点原样保留,只丢掉「带换行的纯空白节点」(也就是源码里为了好看敲出来的缩进)。

同一行的单个空格会留着,所以 <code>&lt;b&gt;甲&lt;/b&gt; &lt;b&gt;乙&lt;/b&gt;</code> 里的空格不会被吃掉。

哪些内容绝对不碰

<code>script</code>、<code>style</code>、<code>pre</code>、<code>textarea</code> 里的内容按原样输出 —— JS 里的换行和缩进有语义,CSS 里的空白也可能影响选择器。

所以你会看到 <code>&lt;script&gt;</code> 内部还是挤在一行,这不是没格式化,是故意不动。

列表与表格的隐式闭合

HTML 允许 <code>&lt;li&gt;</code> 不写闭合标签,格式化时按同名元素自动补齐缩进;表格里的 <code>&lt;tr&gt;</code>、<code>&lt;td&gt;</code>、<code>&lt;th&gt;</code> 以及定义列表的 <code>&lt;dt&gt;</code>、<code>&lt;dd&gt;</code> 同理。

<code>&lt;p&gt;</code> 遇到块级标签会自动闭合。这些是常见写法,遇到非常规嵌套仍建议自己核对一遍。

压缩与转义

压缩会去掉注释、把连续空白压成一个空格,并删掉标签之间带换行的空白 —— 同一行的单个空格仍然保留,所以视觉上不会变。

转义把 <code>&amp; &lt; &gt; " '</code> 全换成实体,用来把代码贴进文章或评论而不被当成标签解析。想直接看到渲染结果就用预览区。

常见问题

预览里为什么脚本不生效?

预览用的 iframe 带 sandbox 且不带 allow-scripts,页面里的脚本与表单提交都会被浏览器拦掉;渲染前还会先把整块 script 剥掉,省得控制台报一串被拦截的错。这是故意的:预览区渲染的是你粘进来的任意源码,放开脚本等于在你自己的页面里执行别人的代码。图片和样式表仍会按源码里写的地址去取,粘别人写的 HTML 时留意一下它引了哪些外链。

格式化会改变渲染结果吗?

正常写法不会。它只动源码里带换行的纯空白节点;如果你的 CSS 依赖某个元素开头的空格(少见但存在,比如 inline 元素之间的分隔),格式化后请对照预览确认。

能处理很长的文档吗?

几千行没问题。整页复制粘贴进来时会连预览一起重绘,节点特别多时预览会明显变慢,这时可以先把预览区折叠着只看格式化结果。