示例#1
0
文件: CssWriter.cs 项目: carbon/Css
        public IEnumerable<CssRule> ExpandStyleRule(StyleRule rule, CssRule parent)
        {
            var newRule = new StyleRule(ExpandSelector(rule));

            foreach (var childNode in rule.Children.ToArray())
            {
                if (childNode is StyleRule)
                {
                    var childRule = (StyleRule)childNode;

                    foreach (var r in ExpandStyleRule(childRule, rule))
                    {
                        yield return r;
                    }
                }
                else
                {
                    newRule.Add(childNode);
                }
            }

            parent.Remove(rule); // Remove from parent node after it's been processed

            if (newRule.HasChildren) yield return newRule;
        }