基于HTML结构的CSS优化器

基于HTML结构的CSS优化器,html,css,optimization,Html,Css,Optimization,我正在寻找任何类型的CSS优化,优化CSS方面的HTML结构。我希望optimizator比CStiny更好,因为HTML是完全已知的 这里有一个例子。 对于这样完整的HTML: <html> <head> </head> <body> <div id="id1"> some text here </div> <div id="id2"> another

我正在寻找任何类型的CSS优化,优化CSS方面的HTML结构。我希望optimizator比CStiny更好,因为HTML是完全已知的

这里有一个例子。 对于这样完整的HTML:

<html>
  <head>
  </head>
  <body>
    <div id="id1">
      some text here
    </div>
    <div id="id2">
      another text here
    </div>
  </body>
</html>
CSS Optimizator应生成:

body {
    font-size: 12px;
}

div {
    margin: 10px auto;
}

#id1 {
    font-size: 14px;
}

#id2 {
    margin-bottom: 0;
}
甚至更理想的输出(由@animuson feedback更改):

CSS速记的使用与此无关——它很简单,而且已经存在。我要求一些非常聪明的CSS优化器。额外的好处是,如果它使用HTML文件的集合,而不是使用相同CSS的一个文件

谢谢你的回答!
鲍里斯。

啊,如果只有程序可以做到这一点,我们只需点击一个按钮,就可以创建一个网站

由于我们还没有进入这个乌托邦,我们仍然必须优化我们自己的代码。这是正确的做事方式


如果代码来自生成器,请改进它。如果你写的话,那么。。。你知道。

嗯,最接近你想要的东西。我知道的是:

它可以进行一些智能优化,例如:

  • 使用相同选择器合并块
  • 合并具有相同特性的块
  • 删除重写的属性
  • 删除覆盖的速记属性
  • 删除重复选择器
  • 块的部分合并
  • 块的部分分裂
参见手册:


但是它仍然只对css文件有效,它没有解析html结构并在此基础上进行优化。

css优化器如何从第二个css到第三个css?它们并不神奇,因为它们确切地知道您将如何在文档中使用ID“id2”。另外,
body{font-size:12px}
div{font-size:12px}
完全不同……没有魔法,我写道HTMLs是有限的,你知道如何使用“#id2”。应该使用
body{font-size:12px}
中的优化,因为body元素的内容仅为div,并且此定义减少了CSS大小。这种优化是对CSS+HTML进行深入分析的结果。问题是,你说只有分割可以在正文中,因为字体大小不会应用于任何其他元素。你过度优化了你的CSS,实际上设置了不必要的限制,你可以做什么而不需要再次修改你的CSS。是的,你是对的,它是过度优化的。这种优化真的没有必要。谢谢你的反馈。拥有这样的东西远非“乌托邦”。这只是定义规则的一个例子(例如,边距-*←→ 边距:通信)并在其上运行正确的算法。作为一个例子,请看(是的,我知道在写这个答案的时候这并不存在,但我很确定,在不到一年的时间里,我们还没有跳到乌托邦的一半)。
body {
    font-size: 12px;
}

div {
    margin: 10px auto;
}

#id1 {
    font-size: 14px;
}

#id2 {
    margin-bottom: 0;
}
body {
    font-size: 12px;
}

div {
    margin: 10px auto;
}

div:last {
    margin-bottom: 0;
}    

#id1 {
    font-size: 14px;
}