IEnumerable <CssStyleRule> GetRules(CssRuleList rules) { foreach (var rule in rules) { if (rule.Type == CssRuleType.Media) { var media = (CssMediaRule)rule; if (media.IsValid(_device) == false) { continue; } var subrules = GetRules(media.Rules); foreach (var subrule in subrules) { yield return(subrule); } } else if (rule.Type == CssRuleType.Supports) { var support = (CssSupportsRule)rule; if (support.IsSupported == false) { continue; } var subrules = GetRules(support.Rules); foreach (var subrule in subrules) { yield return(subrule); } } else if (rule.Type == CssRuleType.Style) { yield return((CssStyleRule)rule); } } }
/// <summary> /// Converts the list of CSS rules to a CSS block string. /// </summary> /// <param name="rules">The list of CSS rules.</param> /// <returns>The block string representation.</returns> public static String ToCssBlock(this CssRuleList rules) { return(String.Concat("{ ", rules.CssText, rules.Length > 0 ? " }" : "}")); }