编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 格式化 / CSS压缩美化

CSS压缩美化

压缩或美化 CSS 代码。

输入
结果

这个工具能做什么

CSS 压缩美化把一份样式表在「紧凑」和「易读」两种形态之间来回转换。压缩方向删掉 /* */ 注释、缩进、多余空格和换行,并把选择器、大括号、冒号、分号、逗号周围的空白收紧,最终压成一行,减小文件体积、便于上线。格式化方向相反,按大括号和分号重新断行、加缩进,把挤在一起的规则拆成一条一行,方便阅读和定位。日常写 CSS 会留大量缩进和注释,这些字符对浏览器渲染毫无意义却占体积;而线上或第三方给到的常是压成一坨的代码,想读懂、改一处又无从下手,这个工具解决的就是这两头的来回切换。

它的实现是纯文本的正则替换,不依赖完整的 CSS 语法解析。压缩时先用一条正则匹配掉 /* ... */ 注释块,再把连续空白折叠成单个空格,接着去掉大括号、冒号、分号、逗号以及 > ~ + 这些结构字符两侧的空白,最后删掉每个规则块里 } 前那个可省略的分号。格式化则是反向排版:在 { 后换行并加缩进、每个 ; 后换行、} 单独成行,并把逗号分隔的列表拆到多行。这种做法胜在快、零依赖、纯前端就能跑,代价是它不真正理解 CSS 的上下文,只按字符规则处理。

最典型的用法是发布前压缩。假设你手写的 style.css 有几百行、带成段注释和四格缩进,直接上线既费带宽又多一点解析开销,压一遍去掉这些冗余字节,再配合服务器的 gzip 体积更小。反过来是接手压缩代码:从浏览器开发者工具的 Sources 面板复制下一段压成一行的第三方样式,或拿到别人交付的已压缩 CSS,想定位某个选择器却挤成一坨,点格式化拆成正常排版,读、改、比对都顺手,改完再压回去。调试时只想快速看清一段陌生 CSS 的层级结构,也可以贴进来格式化后再看。

有几点要留意。它只做空白和注释层面的精简,不改任何属性值,所以不会把 #ffffff 缩成 #fff、不会合并重复规则或删无用样式——这些语义级优化是 cssnano、csso、PostCSS 这类构建期工具的活,压缩率更高但也更重,两者定位不同。注释在压缩和格式化两个方向都会被删掉,是有损的,若注释里有版权声明或标记性 hack,处理前请自行留档。还有,因为是正则实现、不做完整分词,遇到复杂取值要核对结果:calc() 里用加号且依赖两侧空格的表达式(如 calc(100% + 20px))会被误删空格而失效,rgba()、font-family 这类带逗号的值在格式化时会被拆行,SCSS/LESS 的嵌套变量也需先编译成标准 CSS 再用,处理完复杂样式建议在浏览器里验证一下渲染效果。

CSS压缩美化是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“css压缩”、“css美化”、“css格式化”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

压缩之后样式效果会变吗?
一般不会,工具只删注释、空白和换行,不改选择器、属性名和属性值。但它是正则实现,如果 CSS 里有 calc(100% + 20px) 这种用加号且依赖两侧空格的表达式,压缩后空格被删会导致该处失效,处理这类样式后要验证一下。
压缩和格式化能互相还原吗?
不能完全还原。格式化能把压成一行的代码重新拆行缩进、恢复可读结构,但压缩和格式化两个方向都会删掉注释,原来的注释和空行分组无法再找回,所以只是排版可逆、内容有损。
能直接压缩 SCSS 或 LESS 吗?
不建议。它面向标准 CSS,SCSS/LESS 的嵌套、变量、mixin 需要先编译成 CSS 才规范,直接贴进来可能压坏结构或格式化得不理想,编译成 CSS 后再用效果才对。
它和 cssnano、构建工具里的压缩有什么区别?
这个工具只做删空白、删注释的基础 minify;cssnano、csso 等还会缩短颜色值、合并重复规则、改写简写属性、删除无用声明等语义级优化,压缩率更高,通常集成在打包流程里跑,而本工具适合临时手工处理小段 CSS。
会不会上传我的 CSS?粘贴内部样式安全吗?
不会,压缩和格式化都在浏览器本地用 JavaScript 完成,代码不会发送到任何服务器,断网也能正常使用,粘贴未公开的内部样式不用担心外泄。

相关工具

查看全部「格式化」工具 →

相关名词解释