CSS/JS 格式化

美化或压缩 CSS(真嵌套缩进、calc 不被破坏),JavaScript 侧做安全的缩进对齐与去注释,不改动字符串内容。

美化结果
压缩结果

CSS 压缩只删除安全位置的空白:calc(100% - 10px) 里减号两侧的空格会被保留, 否则会变成无效的 CSS。

本工具在你的浏览器内运行,输入的内容与文件不会上传到任何服务器。

常见问题

为什么 JavaScript 只做缩进对齐,不重新换行?
因为真正的重排需要完整的语法解析器,正则做不到、硬做就会改坏代码。两个反例:for (let i = 0; i < 10; i++) 如果按分号换行,会被拆成三行;而 /ab;cd/ 这样的正则字面量里的分号、以及 var a = b / c 里的除号与正则开头,也只能靠语法分析才能区分。所以这里只做能保证正确的事:去掉注释与空行、按大括号深度对齐行首缩进(并且跳过字符串与模板串内部的行)。需要完全重排建议用 Prettier。
CSS 压缩会破坏 calc() 或媒体查询里的空格吗?
不会。压缩不是简单的「把所有空白换成一个空格」,而是逐字符判断:只有当左侧紧邻字符属于 { } ; , : > 或右侧紧邻字符属于 { } ; , : 时才删除空白。calc(100% - 10px) 里减号两侧不满足条件,空格被原样保留;@media (min-width: 600px) and (max-width: 900px) 里的 and 两侧同理。常见的 CSS 压缩坑正是 calc(100%-10px) —— 那是一个无效值,整条声明会被浏览器丢弃。
压缩能减少多少体积?
只取决于原文件有多少空白与注释,通常能减掉 20%~40%。这里不做任何「危险优化」:不改选择器、不合并声明、不缩短颜色写法(#ffffff 不会变成 #fff)—— 那些操作对体积的影响远小于空白,却更容易改错样式。想进一步压缩建议交给构建工具里的 CSS 压缩器,它们有完整的语法树。

相关工具