CssPageRule
Represents the @page rule.
using AngleSharp.Parser.Css;
using System.IO;
using System.Linq;
namespace AngleSharp.Dom.Css
{
internal sealed class CssPageRule : CssRule, ICssPageRule, ICssRule, ICssNode, IStyleFormattable
{
public string SelectorText {
get {
return Selector.Text;
}
set {
Selector = base.Parser.ParseSelector(value);
}
}
public ISelector Selector {
get {
return base.Children.OfType<ISelector>().FirstOrDefault();
}
set {
ReplaceSingle(Selector, value);
}
}
ICssStyleDeclaration ICssPageRule.Style {
get {
return Style;
}
}
public CssStyleDeclaration Style => base.Children.OfType<CssStyleDeclaration>().FirstOrDefault();
internal CssPageRule(CssParser parser)
: base(CssRuleType.Page, parser)
{
AppendChild(SimpleSelector.All);
AppendChild(new CssStyleDeclaration(this));
}
public override void ToCss(TextWriter writer, IStyleFormatter formatter)
{
string rules = formatter.Block(Style);
writer.Write(formatter.Rule("@page", SelectorText, rules));
}
}
}