CssSupportsRule
sealed class CssSupportsRule : CssConditionRule, ICssSupportsRule, ICssConditionRule, ICssGroupingRule, ICssRule, ICssNode, IStyleFormattable, ICssRuleCreator
Represents an @supports rule.
using AngleSharp.Css;
using AngleSharp.Extensions;
using AngleSharp.Parser.Css;
using System.IO;
using System.Linq;
namespace AngleSharp.Dom.Css
{
internal sealed class CssSupportsRule : CssConditionRule, ICssSupportsRule, ICssConditionRule, ICssGroupingRule, ICssRule, ICssNode, IStyleFormattable, ICssRuleCreator
{
public string ConditionText {
get {
return Condition.ToCss();
}
set {
IConditionFunction conditionFunction = base.Parser.ParseCondition(value);
if (conditionFunction == null)
throw new DomException(DomError.Syntax);
Condition = conditionFunction;
}
}
public IConditionFunction Condition {
get {
return base.Children.OfType<IConditionFunction>().FirstOrDefault() ?? new EmptyCondition();
}
set {
if (value != null) {
RemoveChild(Condition);
AppendChild(value);
}
}
}
internal CssSupportsRule(CssParser parser)
: base(CssRuleType.Supports, parser)
{
}
internal override bool IsValid(RenderDevice device)
{
return Condition.Check();
}
public override void ToCss(TextWriter writer, IStyleFormatter formatter)
{
string rules = formatter.Block(base.Rules);
writer.Write(formatter.Rule("@supports", ConditionText, rules));
}
}
}