Mar*_*ahn 13 css compression node.js
我想知道是否有人知道一个工具将积极重写CSS以更有效地压缩样式.我想要:
.foo { color : red; font-size: 16px; height: 20px; }
.bar { color : red; font-size: 16px; height: 30px; }
Run Code Online (Sandbox Code Playgroud)
被压缩为:
.foo, .bar { color : red; font-size : 16px; }
.foo { height : 20px; }
.bar { height : 30px; }
Run Code Online (Sandbox Code Playgroud)
要清楚,我所知道的minifiers,像YUI压缩机,只删除空白,并可能加入一些属性(如font-family和font-size成font).我正在寻找一些愿意完全重写文件结构的东西.
除此之外,如果有人知道任何人在这背后的压缩逻辑方面所做的任何工作,那么这些信息将不胜感激.如果我找不到一个,我正在考虑写自己的东西,但有一百万件要考虑的事情,如margin-top覆盖部分margin,选择器特性和包括订单等等......那么如何有效地工作压缩信息,重复选择器或属性会更有效吗?
我不知道任何积极的CSS缩小工具,但您可以使用以下方法:
margin:1px 0 0 0;到margin-top:1px; margin-left:0px;...).div,p > span,#myid)和B(独特的性能,例如.display:block;,color:#deadbeef;).c为你的元素使用适当的权重函数b.这可能是给定元素的邻居数量b,或者accumulated lenght of properties - accumulated length of selectors.你的选择.您可能会注意到,通过使用此方法,您将获得二分图.现在尝试以下贪心算法(伪代码):
margin-top:0px;margin-left:1px).请注意,实际压缩取决于您的体重功能.因为它是一个贪婪的算法,它可能会返回一个缩小的CSS,但我相信有人会发布一个反例.另请注意,在删除Z中的元素后,您必须更新权重函数.
|B|^2*|A|如果我没有弄错的话,该算法将始终终止并将在O()中运行.如果您使用堆并对每个邻接列表中的属性进行排序(设置时间O(|B|*|A|log(|A|))),您将获得O(|B|*|A|* (log(|B|)+log(|A|))).
| 归档时间: |
|
| 查看次数: |
1929 次 |
| 最近记录: |