数据

CSS 压缩

访客每多下载一字节 CSS,页面首屏就要多等一会儿,而大多数样式表里都留着构建步骤本该清掉的余量,从缩进、注释,到写成长格式的颜色,再到本可以合并的规则。这个工具一次粘贴就能把它们全部去掉。你贴进一段样式,立刻拿回体积最小且效果等价的 CSS,原始、压缩后和 gzip 三个体积并排显示,省了多少一目了然。它会把 CSS 读成真正的语法树再处理,而不是简单地按空白切割,所以输出表现和源码完全一致,而且整套流程都在你的浏览器里完成。

  • 把样式表读成真正的语法树再处理,压缩后的表现和源码完全一致,不会因为某个少见的选择器而出错
  • 原始、压缩后和 gzip 三个体积并排显示,让你以服务器真正发送的大小判断收益,而不是只看原始字节
  • 可以合并重复选择器并重排声明换取更小的文件,也可以在你需要干净对比时保持结构不变
  • 全程在浏览器里运行,你粘贴的 CSS 连同还没发布的内容都留在本机,关闭标签页就不再保留
工具/CSS 压缩
517 B
353 B节省 31.7%
选项

功能简介

一个压缩工具有用的前提,是你既能信任它的输出,又能看见收益。这个工具正是围绕这两点打造:可放心上线的精准压缩,以及证明它值得的数字。

  1. 01

    基于解析器的压缩

    在删除任何内容之前,先把样式表读成真正的语法树,因此注释、空白和冗余记号被清掉的同时含义保持不变。这里没有遇到怪异选择器或 data URI 就会出错的脆弱文本替换。

  2. 02

    更聪明的取值与颜色

    在安全的前提下折叠长格式取值。六位十六进制颜色缩成三位,零长度去掉单位,结尾分号和前导零一并消失。这些小处理在一张大文件上累加起来很可观。

  3. 03

    可选的规则重构

    开启重构可合并重复选择器、归并相邻规则并重排声明,换取更小的体积。当你希望输出与源码逐行对应时再关掉它。

  4. 04

    保留许可注释

    许可与署名所要求的横幅可以留下,同时清掉其余所有注释,让你既合规又不会把没人读的注释打包上线。

  5. 05

    可信的体积明细

    原始、压缩后和 gzip 三个体积随输入更新,旁边是精确的节省百分比。其中 gzip 才是和真正在网络上传输的大小相符的那个数字。

  6. 06

    复制、下载或上传

    从剪贴板粘贴、从磁盘加载文件,然后复制结果或保存为 min.css 文件。整个回路只需几秒,且全程不碰服务器。

如何使用

三步把一张可读的样式表变成可上生产、体积最小的版本,全程把节省的数字摆在你面前。

  1. 01

    把 CSS 粘贴进输入面板,或用上传直接从磁盘加载文件。

  2. 02

    选择选项。想要最小输出就让重构优化保持开启,需要保留规则顺序时关掉它,发许可横幅就保留许可注释。

  3. 03

    看选项下方的明细确认收益,那里有原始、压缩后和 gzip 三个体积以及节省百分比。

  4. 04

    复制压缩后的 CSS,或下载为 min.css 文件,再接入负责生产样式的页面或构建步骤。

功能说明

这些细节让输出可放心上线、值得信任。

  • 基于 csso,一个成熟的 CSS 优化器,工作在完整的语法树上而不是靠文本替换。
  • gzip 体积用浏览器自带的压缩测量,所以这个数字反映的是真实服务器会发送的大小。
  • 压缩随输入进行,没有要按的按钮,编辑与看到结果之间没有延迟。
  • 解析错误会带着错误信息原地显示,而不是悄悄产出损坏或空的结果。
  • 不上传、不记录。你粘贴的 CSS,连同还没发布的内容,只留在浏览器里,关闭标签页就消失。

适合哪些场景

把 CSS 削到只剩本质,在这些场景里会回本。

  1. 让页面更快

    更小的样式表能更早抵达浏览器、解除渲染阻塞,有助于首次内容绘制以及搜索引擎看重的核心网页指标。

  2. 没有打包器时的构建步骤

    在静态站点、落地页或邮件模板里,你并没有跑打包器,把 CSS 贴到这里就能得到和流水线一样的压缩效果。

  3. 内联关键 CSS

    当你把页面顶部的样式内联进来以避免一次阻塞渲染的请求时,每一字节都要紧,而压缩版是唯一合理的嵌入形式。

  4. 精简生成的样式表

    厂商 CSS 和工具生成的输出常常是未压缩的。在它们抵达用户之前先过一遍这里,把字节省回来。

延伸阅读

脚本也想这么处理?把它和JavaScript 压缩 搭配使用;而当你想要的是展开、整理代码而不是压缩时,SQL 格式化 则是反方向的格式化。

压缩 CSS 到底做了什么

压缩不是混淆,也和 gzip 压缩不是一回事。它在保持渲染结果一致的前提下,去掉浏览器并不需要的字符。下面是被去掉的东西,以及为什么这样做安全。

  1. 空白与排版

    让 CSS 易读的缩进、换行和空格对浏览器毫无意义。压缩会把它们连同每个右花括号前的最后一个分号一并去掉,因为解析器并不需要这些。

  2. 注释

    源码注释是写给人看的,永远不会出现在渲染页面里,因此被整体删除。唯一的例外是许可横幅,在你要求时工具会按约定保留它。

  3. 更短的等价取值

    很多取值有含义相同但更短的写法。白色十六进制从六位缩成三位,零像素长度变成一个普通的零,小数前面的零也会去掉。谨慎的压缩器只在结果完全一致时才应用这些变换。

  4. 合并与重构

    当两个选择器共享声明,或同一选择器出现两次时,它们的规则可以合并,相邻声明也可以重排。这能省下更多字节,但会改变源码的排布方式,所以保持为可选项。

  5. 为什么 gzip 才是关键数字

    服务器发送 CSS 时会用 gzip 或 brotli 压缩,而它们本就会合并重复的空白。压缩仍然有用,因为它去掉了压缩算法处理不了的内容,也给压缩器更干净的输入,但收益始终要看 gzip 体积,而不是原始字节。

  6. 生产环境压缩,源码保持可读

    压缩后的 CSS 很难编辑,所以它属于构建产物,而不该进仓库。用展开的版本来编写和提交,压缩只作为发布前的最后一步。

使用建议

这些习惯能让压缩后的 CSS 既小又不出意外。

  • 把压缩放在构建的最后一步并部署其结果。永远不要手改压缩后的 CSS,也不要把它当作源码提交。
  • 用 gzip 体积判断收益,因为那才是服务器实际传输的大小。很大的原始节省一旦套上压缩,可能就只剩一点点。
  • 生产环境保持重构开启,但当你要对比输出、或需要选择器与顺序和源码一致时就关掉它。
  • 为压缩文件开启 gzip 或 brotli 并设置较长的缓存时间。压缩与传输压缩是叠加的,谁也不能替代谁。
  • 打包第三方 CSS 时用对应选项保留许可横幅,确保你在被要求遵守的条款范围内发布。

边界与注意事项

这个工具做什么,以及把什么留给其他步骤。

  • 它压缩单张合法的 CSS 样式表。它不会打包引入的文件、不解析 URL,也不会跟踪对其他文件的引用。
  • 它不会加厂商前缀、不转译现代语法,也不为老旧浏览器做降级。需要这些请搭配 Autoprefixer 或 Lightning CSS。
  • 用 Sass 或 Less 等预处理器写的样式必须先编译成纯 CSS,因为这里只理解标准 CSS。
  • 遇到语法错误会停止压缩并报告,而不是猜着绕过去,所以严重损坏的输入不会产出残缺结果。

常见问题

关于压缩 CSS、它改了什么、以及何时使用的常见问题。

压缩会改变我的 CSS 渲染效果吗?

不会。压缩只去掉浏览器不需要的字符,比如空白、注释和多余分号,并把取值改写成含义完全相同的更短形式,渲染结果一模一样。可选的重构同样保持行为不变,只改变规则在内部的组织方式。

压缩和 gzip 有什么区别?

两者协同工作。压缩改的是 CSS 文本本身,去掉压缩算法无从判断为多余的内容。gzip 或 brotli 再压缩你发送的一切,在传输时折叠重复。两者你都想要,先压缩得到最干净的输入,再让服务器为传输做压缩。真实收益看这里显示的 gzip 数字。

我的 CSS 能小多少?

完全取决于源码怎么写。注释多、排版宽松或重复度高的样式表,原始体积可能掉三分之一到一半,本就紧凑的 CSS 可能只省一点点。一旦算上 gzip,百分比会缩小,因为压缩已经把大部分空白收回去了,这正是 gzip 数字更诚实的原因。

我该把压缩后的 CSS 提交进仓库吗?

不该。压缩后的 CSS 是构建产物,不是源码。提交你和同事实际编辑的那份可读、展开的版本,把压缩文件作为发布前的最后一步生成。把压缩输出签入会让代码评审难以阅读、合并变得痛苦。

它会破坏我的变量、动画或媒体查询吗?

不会。自定义属性、关键帧、媒体查询和特性查询、calc 表达式以及其余现代 CSS 都会被读取并保留。压缩理解语法,所以合法的写法都会原样留存。

我能在这里压缩 Sass 或 Less 文件吗?

不能直接压缩,因为这个工具处理的是标准 CSS。请先把 Sass 或 Less 编译成纯 CSS,多数项目会在构建里做这件事,再把输出粘贴或上传到这里压缩。

我的 CSS 会被上传到什么地方吗?

不会。一切都在你的浏览器里运行。你粘贴的 CSS、上传的任何文件以及结果都在本地处理,绝不传输或存储,关闭标签页即刻消失,所以即便是私有或未发布的样式也很安全。

更多相关工具

继续探索数据与格式工具集的其余部分。