如何将多个CSS声明组合成速记

时间:2015-12-11 12:19:17

标签: c# css .net anglesharp

我使用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;
}

这对于比较规则和检测更改很有用,但问题是,如何将此规则组合成上述速记?

另一个例子,如何从中得到:

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

到这个

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

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

1 个答案:

答案 0 :(得分:1)

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

在内部,AngleSharp仅使用手写声明,因此输出尽可能详细。但是,AngleSharp知道大多数短序,并且应该能够将这些长臂重新组合成简写形式。

我不知道这对你有帮助吗?如果没有,那么请发布一些代码(MWE),我会尝试改进这个答案。