AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.11" />

.NET API 1,230,848 bytes

 CssRule

Represents a CSS rule.
using AngleSharp.Extensions; using AngleSharp.Parser.Css; namespace AngleSharp.Dom.Css { internal abstract class CssRule : CssNode, ICssRule, ICssNode, IStyleFormattable { private readonly CssRuleType _type; private readonly CssParser _parser; private ICssStyleSheet _ownerSheet; private ICssRule _parentRule; public string CssText { get { return this.ToCss(); } set { CssRule cssRule = _parser.ParseRule(value); if (cssRule == null) throw new DomException(DomError.Syntax); if (cssRule.Type != _type) throw new DomException(DomError.InvalidModification); ReplaceWith(cssRule); } } public ICssRule Parent { get { return _parentRule; } internal set { _parentRule = value; if (value != null) _ownerSheet = _parentRule.Owner; } } public ICssStyleSheet Owner { get { return _ownerSheet; } internal set { _ownerSheet = value; } } public CssRuleType Type => _type; internal CssParser Parser => _parser; internal CssRule(CssRuleType type, CssParser parser) { _type = type; _parser = parser; } protected virtual void ReplaceWith(ICssRule rule) { ReplaceAll(rule); } protected void ReplaceSingle(ICssNode oldNode, ICssNode newNode) { if (oldNode != null) { if (newNode != null) ReplaceChild(oldNode, newNode); else RemoveChild(oldNode); } else if (newNode != null) { AppendChild(newNode); } } } }