CssMediaRule
sealed class CssMediaRule : CssConditionRule, ICssMediaRule, ICssConditionRule, ICssGroupingRule, ICssRule, IStyleFormattable
Represents a CSS @media rule.
using AngleSharp.Css;
using AngleSharp.Dom.Collections;
using AngleSharp.Parser.Css;
namespace AngleSharp.Dom.Css
{
internal sealed class CssMediaRule : CssConditionRule, ICssMediaRule, ICssConditionRule, ICssGroupingRule, ICssRule, IStyleFormattable
{
private readonly MediaList _media;
public string ConditionText {
get {
return _media.MediaText;
}
set {
_media.MediaText = value;
}
}
IMediaList ICssMediaRule.Media {
get {
return _media;
}
}
internal MediaList Media => _media;
internal CssMediaRule(CssParser parser)
: base(CssRuleType.Media, parser)
{
_media = new MediaList(parser);
}
protected override void ReplaceWith(ICssRule rule)
{
base.ReplaceWith(rule);
CssMediaRule cssMediaRule = rule as CssMediaRule;
_media.Import(cssMediaRule._media);
}
internal override bool IsValid(RenderDevice device)
{
return _media.Validate(device);
}
public override string ToCss(IStyleFormatter formatter)
{
string rules = formatter.Block(base.Rules);
return formatter.Rule("@media", _media.MediaText, rules);
}
}
}