微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有真正聪明的CSS压缩机吗?

我测试了一些CSS压缩器,说实话,我很失望.也许我只是尝试过错了?

起点如下,故意不好的css代码

.a{
   font-size: 10px;
   padding: 0 6px;
   text-align: center;
}
.b{
   font-size: 11px;
   padding: 0 6px;
   text-align: center;
}

很明显,在两个类中声明3个属性中的2个属性是无意义的,并导致185个字节的代码.如果你手动更好地编写它会看起来像

.a,.b{
   padding: 0 6px;
   text-align: center;
}
.a{
   font-size: 10px;
}
.b{
   font-size: 11px;
}

它有点小(149字节)或甚至

.a,.b{
   padding: 0 6px;
   text-align: center;
   font-size: 10px;
}
.b{
   font-size: 11px;
}

这是133字节之前和

.a,.b{padding:0 6px;text-align:center;font-size:10px}.b{font-size:11px}

压缩后只有71个字节.这将是原始尺寸的100/185 * 71 = 38.3%.

然而,所有的压缩都是:

.a{font-size:10px;padding:0 6px;text-align:center}.b{font-size:11px;padding:0 6px;text-align:center}

这是100个字节.

当然,在一个理想的世界中,你只需要编写更好的CSS代码,但是如果你编写更大的文件就不容易,如果你使用任何框架几乎不可能.

那么,是否有更好的工具可以产生上述示例代码的71字节?

解决方法

当你在CSS压缩之后使用gzip时(就像大多数性能指南所建议的那样),你会得到不同的结果,因为CSS压缩器的输出更好拉链.

CSS压缩版本在gzip之后是85字节,而你的是gzip后的89字节.

因此,在CSS压缩后使用gzip时,工具中的代码会获胜.
此外,结果更像原始代码,由于过度优化打破了CSS,因此可以减少错误空间.

但是,您的CSS代码在71字节的解压缩版本中获胜.

您所做的优化有一个非常本地化的用例,其中选择器在CSS文件中彼此相邻.

一些示例小提示显示问题:

.a {
    height:50px;
    width:50px;
    background-color: yellow;
}

.b {
    background-color: red;
}

.c {
    background-color: yellow;
}

> Original
> Combined selector #1
> Combined selector #2

原文地址:https://www.jb51.cc/css/215755.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。