css副本匹配算法
我正在寻找一个库,它可以提取常见的css属性,并向元素中添加一个类(我想通过编程实现这一点,这是生成的html,我想通过删除额外的字节来进一步优化它)。例如,我为元素定义了一系列样式:css副本匹配算法,css,algorithm,Css,Algorithm,我正在寻找一个库,它可以提取常见的css属性,并向元素中添加一个类(我想通过编程实现这一点,这是生成的html,我想通过删除额外的字节来进一步优化它)。例如,我为元素定义了一系列样式: #element1 { font-weight:bold; background-image:url("some_url"); } #element2 { font-style:italic; } #element3 { font-weight:bold; font-sty
#element1 {
font-weight:bold;
background-image:url("some_url");
}
#element2 {
font-style:italic;
}
#element3 {
font-weight:bold;
font-style:italic;
background-image:url("some_url");
}
#element4 {
background-image:url("some_url");
}
............ (crapload of elements)
可折叠为:
.bold {}
.italic {}
.backgroundimage {}
或者更好:
.bold-and-italic {}
.italic-with-bg {}
etc etc
有没有图书馆已经这样做了?如果没有,我可以遍历并重新计算所有属性,但是这里有更优化的算法吗?每个折叠的类执行一个属性很简单,但我相信执行一个具有多个属性的类会变得更复杂。。。这里应该使用什么样的数据结构?看一看“分析冗余CSS的CSS冗余分析器”(heh)——我无法在算法或实现本身上帮助您,但您想要做的事情听起来很像此工具检测到的事情之一
报告输出将为您提供一个共享通用规则的选择器列表,因此它可能可以用作生成所需新规则的基础。我将研究或。这两个工具都是很好的工具。如果您使用其中任何一种,您都需要一个Less/Sass编译器,因此我建议您使用它。您应该具体看看优化工具
示例(来自文档):
之前:
.test0 {
color: red;
border: none;
margin: 0
}
.test1 {
color: green;
border: none;
margin: 0
}
之后:
.test0 {
color: red
}
.test0, .test1 {
border: none;
margin: 0
}
.test1 {
color: green
}
我闻到了套装封面的味道,可能是一棵前缀树和维特比组合在一起,然后把它切成几块。让
.bold{}
、.italic{}
和.backgroundimage{}
如何节省字节?HTML文件中的内联类声明数量是否与CSS行相同?我可以看出,具有多个属性的类可能会减少文件长度。这不如工程问题本身重要。就字节节省而言,它充其量也很小。您是否尝试过使用css parse之类的工具解析规则:您在服务器端有什么环境?ASP.NET、PHP、能否执行Python、是否有时间限制(HTML生成和服务之间的时间间隔是多少?),客户端的限制是什么?请提供详细信息和限制。