如何将多个 CSS 声明合并为 shorthand

How to combine multiple CSS declarations to shorthand

我正在使用 AngleSharp 解析一些 CSS 文件,比较它们的结构并从中构建输出文件。该工具使所有声明明确,即如果源规则是:

.recent-work-wrap .overlay {
    padding: 15px;
}

我从 AngleSharp 得到以下输出:

.recent-work-wrap .overlay {
    padding-top: 15px;
    padding-right: 15px;
    padding-bottom: 15px;
    padding-left: 15px;
}

这对于比较规则和检测变化很有用,但问题是,如何将此规则组合成上面的 shorthand?

那么再举一个例子,如何从中得到:

    .sample-rule {
        margin-right: auto;
        margin-left: auto;
        margin-top: 30px;
        margin-bottom: 30px;
    }

至此

    .sample-rule {
        margin: 30px auto;
    }

CSS3 声明的情况变得更糟,因为它们真的可以有很多参数...我检查了一些 CSS minifier/uglifier 工具,但它们大多使用 RegEx删除空格和较小的优化。 是否有已知的 way/tool/library 可以从多个声明中编写最佳 shorthands?

你如何得到这个输出?您是否尝试查看 Style 属性 的 shorthand 声明(例如 Margin)?

在内部,AngleSharp 仅使用普通声明,因此输出尽可能冗长。然而,AngleSharp 知道大多数 shorthands 并且应该能够将这些长手语重新组合成它们的 shorthand 形式。

我不知道这是否对您有所帮助。如果没有,那么请 post 一些代码(MWE),我会尝试完善这个答案。