CssStyleSheet
Represents a CSS Stylesheet.
using AngleSharp.Dom.Collections;
using AngleSharp.Network;
using AngleSharp.Parser.Css;
namespace AngleSharp.Dom.Css
{
internal sealed class CssStyleSheet : StyleSheet, ICssStyleSheet, IStyleSheet, IStyleFormattable
{
private readonly CssRuleList _rules;
private readonly CssParser _parser;
private ICssRule _ownerRule;
public override string Type => MimeTypes.Css;
ICssRuleList ICssStyleSheet.Rules {
get {
return _rules;
}
}
public ICssRule OwnerRule {
get {
return _ownerRule;
}
internal set {
_ownerRule = value;
}
}
public string CssText => ToCss();
internal CssRuleList Rules => _rules;
internal CssStyleSheet(CssParser parser)
: base(new MediaList(parser))
{
_rules = new CssRuleList();
_parser = parser;
}
public override string ToCss(IStyleFormatter formatter)
{
return formatter.Sheet(_rules);
}
public void RemoveAt(int index)
{
_rules.RemoveAt(index);
}
public int Insert(string rule, int index)
{
CssRule value = _parser.ParseRule(rule);
_rules.Insert(value, index, this, null);
return index;
}
internal void AddRule(CssRule rule)
{
if (rule != null)
_rules.Add(rule, this, null);
}
}
}