Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
css副本匹配算法_Css_Algorithm - Fatal编程技术网

css副本匹配算法

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

我正在寻找一个库,它可以提取常见的css属性,并向元素中添加一个类(我想通过编程实现这一点,这是生成的html,我想通过删除额外的字节来进一步优化它)。例如,我为元素定义了一系列样式:

#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生成和服务之间的时间间隔是多少?),客户端的限制是什么?请提供详细信息和限制。