AngleSharp by AngleSharp

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

.NET API 1,204,224 bytes

 CssStyleSheet

Represents a CSS Stylesheet.
using AngleSharp.Dom.Collections; using AngleSharp.Html; using AngleSharp.Network; using AngleSharp.Parser.Css; using System.IO; namespace AngleSharp.Dom.Css { internal sealed class CssStyleSheet : CssNode, ICssStyleSheet, IStyleSheet, IStyleFormattable, ICssNode, ICssRuleCreator { private readonly MediaList _media; private readonly string _url; private readonly IElement _owner; private readonly ICssStyleSheet _parent; private readonly CssRuleList _rules; private readonly CssParser _parser; private readonly ICssRule _ownerRule; public string Type => MimeTypeNames.Css; public bool IsDisabled { get; set; } public IElement OwnerNode => _owner; public ICssStyleSheet Parent => _parent; public string Href => _url; public string Title { get { if (_owner == null) return null; return _owner.GetAttribute(AttributeNames.Title); } } public IMediaList Media => _media; ICssRuleList ICssStyleSheet.Rules { get { return Rules; } } public ICssRule OwnerRule => _ownerRule; internal CssRuleList Rules => _rules; internal CssStyleSheet(CssParser parser, string url, IElement owner) { _media = new MediaList(parser); _owner = owner; _url = url; _rules = new CssRuleList(this); _parser = parser; } internal CssStyleSheet(CssParser parser, string url, ICssStyleSheet parent) : this(parser, url, parent?.OwnerNode) { _parent = parent; } internal CssStyleSheet(CssParser parser) : this(parser, (string)null, (ICssStyleSheet)null) { } internal CssStyleSheet(CssRule ownerRule, string url) : this(ownerRule.Parser, url, ownerRule.Owner) { _ownerRule = ownerRule; } public ICssRule AddNewRule(CssRuleType ruleType) { CssRule cssRule = _parser.CreateRule(ruleType); Rules.Add(cssRule); return cssRule; } public override void ToCss(TextWriter writer, IStyleFormatter formatter) { writer.Write(formatter.Sheet(Rules)); } public void RemoveAt(int index) { Rules.RemoveAt(index); } public int Insert(string ruleText, int index) { CssRule cssRule = _parser.ParseRule(ruleText); cssRule.Owner = this; Rules.Insert(index, cssRule); return index; } } }