c# – 如何以编程方式扩展CSS速记属性?

是否有.Net CSS解析器允许我将
css shorthand properties解析为其缩写形式?

例如,我想采取以下措施:

        #somediv{
            margin: 10px;
            padding: 10px 20px;
            border:5px solid #FFF;
        }

并将其翻译为:

        #somediv{
            margin-top: 10px;
            margin-right: 10px;
            margin-bottom: 10px;
            margin-left: 10px;
            padding-top: 10px;
            padding-right: 20px;
            padding-bottom: 10px;
            padding-left: 20px;
            border-width: 5px;
            border-style: solid;
            border-color: #FFF; 
        }

以下是我需要以这种方式处理的所有不同属性的相当好的列表:http://www.dustindiaz.com/css-shorthand/

理想情况下,我喜欢.Net中的某些东西,但如果有另一种语言的东西是开源的,我可能会适应它.

更新

没有详细说明我在这里尝试做的事情的基本前提是:

我需要以编程方式获取多个CSS文档并将它们合并以创建一组确定的CSS.

所以如果doc 1有:

p { padding: 10px;}

然后我在doc 2上添加:

p { padding-left:20px;}

生成的CSS应该是:

p { padding-top: 10px; padding-right:10px; padding-bottom:10px; padding-left:20px;}

因为后来添加的文件会覆盖单个属性.为了准确地做到这一点,我需要采用每个CSS并将每个属性分解为它的最低元素.

最佳答案 对于常规的CSS解析,我发现这是最容易使用的:

http://www.codeproject.com/KB/recipes/CSSParser.aspx

为了将速记属性分解为他们的缩写形式,我发现了两个可以做到的:

在.Net:http://www.modeltext.com/css/index.aspx

在JavaScript中:http://www.glazman.org/JSCSSP/

点赞