CssStyleRule
Represents a CSS style rule.
using AngleSharp.Parser.Css;
using System.Linq;
namespace AngleSharp.Dom.Css
{
internal sealed class CssStyleRule : CssRule, ICssStyleRule, ICssRule, ICssNode, IStyleFormattable
{
public ISelector Selector {
get {
return base.Children.OfType<ISelector>().FirstOrDefault();
}
set {
ReplaceSingle(Selector, value);
}
}
public string SelectorText {
get {
return Selector.Text;
}
set {
Selector = base.Parser.ParseSelector(value);
}
}
ICssStyleDeclaration ICssStyleRule.Style {
get {
return Style;
}
}
public CssStyleDeclaration Style => base.Children.OfType<CssStyleDeclaration>().FirstOrDefault();
internal CssStyleRule(CssParser parser)
: base(CssRuleType.Style, parser)
{
AppendChild(SimpleSelector.All);
AppendChild(new CssStyleDeclaration(this));
}
public override string ToCss(IStyleFormatter formatter)
{
string rules = Style.ToCss(formatter);
return formatter.Style(SelectorText, rules);
}
}
}