实用工具

CSS 压缩

用 CSSO 压缩 CSS,结构优化会合并重复规则和简写属性,并显示 gzip 后节省了多少。

浏览器本地运行代码转换3785
免费

输入

0 B

结果

结果会显示在这里。

大多数 CSS 压缩工具只删空白和注释。CSSO 还会做结构优化:合并声明完全相同的规则,把 margin-top、margin-right、margin-bottom、margin-left 合成一个 margin 简写,把 padding: 8px 16px 8px 16px 缩成 8px 16px,把 #ffffff 写成 #fff、0px 写成 0。postcss-csso 和 gulp-csso 用的都是它。贴入样式表,看看浏览器真正需要其中多少,原始体积和 gzip 后体积都会列出来。

它是怎么工作的

  • 压缩前会先完整解析一遍样式表,有语法错误就报出行号,否则 CSSO 会一声不吭地把出错的规则丢掉。
  • 关掉结构优化后,CSSO 只做安全的局部改动:空白、注释、颜色和数字的缩写。
  • /*! 注释默认保留以满足许可证要求;关掉这个选项会删除所有注释。

你的数据去了哪里

哪也没去。本工具完全在你的浏览器里运行:你粘贴的文本由页面处理,不会传输到任何服务器,也不会写进任何日志。

本工具免费且无需登录,运行结果只存在于你当前的页面里,不会被保存到任何地方。

它要花多少

本工具完全免费,不需要登录,也不消耗积分。

常见问题

结构优化安全吗?
它的设计目标是不改变效果:只有在 CSSO 能证明层叠结果不变时,才会合并或移动规则。少数例外是依赖浏览器 hack、或依赖无效声明以特定方式被忽略的样式表。如果压缩后显示不一样,关掉结构优化再对比。
为什么我的 CSS 被拒绝了?
像 color red 这样少了冒号的声明,或者选择器里没闭合的括号,都是语法错误。浏览器会跳过这类规则,CSSO 也会,而且悄无声息。直接报出行号,你就能修好错误,而不是上线一份少了规则却浑然不知的样式表。
支持原生嵌套、@layer 和 @container 这些新写法吗?
自定义属性、@layer 和 @container 都没问题。原生 CSS 嵌套不行:CSSO 的解析器比它出现得早,会把嵌套规则直接丢掉,所以这个工具会报解析错误而不是继续压缩。先把嵌套展开,或者交给 Lightning CSS 这类构建工具一并处理。
CSSO、cssnano、Lightning CSS 选哪个?
在常见样式表上三者压出来的体积差不多。cssnano 是一组 PostCSS 插件;Lightning CSS 用 Rust 写成,还能处理浏览器前缀和新语法降级;CSSO 的强项是结构合并。CSSO 的解析器没有跟上原生嵌套这类新语法,如果你的样式表用到了它们,这一点要考虑进去。

背后的开源项目

本工具运行在 css/csso 之上,以 MIT 许可发布。如果你需要在自己的程序里实现同样的能力,直接用这个库。

css/csso

也常被称作

  • css压缩
  • 在线css压缩
  • css压缩工具
  • csso
  • css代码压缩
  • css优化