piapia123
zh

CSS 格式化与压缩

格式化

所有处理都在浏览器本地完成,数据不上传服务器

输入
输出

把压缩成一行的样式表展开:每个规则块的声明单独成行、选择器列表按逗号分行、@media 与嵌套规则逐层缩进,空规则收成一行。压缩模式反过来只删结构位置上的空白,并去掉 } 前多余的分号 —— 而 margin: 0 auto 里的空格、a :hover 里冒号前的空格都是语义,删掉会把样式改坏,所以一律保留。

功能

  • 规则块展开:选择器一行、声明逐行、} 与选择器对齐
  • 选择器列表按逗号分行,值里的逗号(字体列表、rgba())留在原地
  • 空规则收成一行(a {})
  • 声明冒号统一成 color: red;选择器里的伪类冒号(&:hover、a:hover)不会被插进空格
  • 字符串、注释与 url() 内部的结构字符不参与判断:content: "}" 与 data URI 里的分号都不会把规则拆坏
  • data URI 按整体处理,不会因为里面的分号被切成两条声明
  • 压缩模式去掉结构位置的空白、} 前多余的分号与普通注释
  • 保留 /*! ... */ 形式的版权注释
  • 不做语法校验:括号不配对时尽力缩进而不是报错

使用方法

  1. 把 CSS 粘贴进输入框
  2. 选择处理方式与缩进
  3. 按 Ctrl/⌘ + Enter 或点「运行」
  4. 点「复制」取走结果

常见问题

压缩会删掉 margin: 0 auto 里的空格吗?
不会。只有 { } ; , : 前后的空白会被删。0 auto 是两个值,少一个空格整条声明就失效了 —— 这类空格一律保留。
a :hover 会被压成 a:hover 吗?
不会。选择器里冒号前的空格是后代组合符,a :hover 与 a:hover 是两条完全不同的规则,压缩时保留。
嵌套写法(CSS Nesting)支持吗?
支持。&:hover 里的冒号与声明冒号由同一处判断区分:只有后面跟着 ; 或 } 的冒号才当成声明冒号,所以不会把选择器写成 &: hover 这种非法样式。
CSS 会被上传吗?
不会。全部处理在浏览器内存里完成,页面不发任何请求,断网也能用。

相关工具