CssImportRule
Represents a CSS import rule.
using AngleSharp.Dom.Collections;
using AngleSharp.Extensions;
namespace AngleSharp.Dom.Css
{
internal sealed class CssImportRule : CssRule, ICssImportRule, ICssRule
{
private MediaList _media;
private string _href;
private ICssStyleSheet _styleSheet;
public string Href {
get {
return _href;
}
set {
_href = value;
}
}
IMediaList ICssImportRule.Media {
get {
return _media ?? (_media = new MediaList());
}
}
public MediaList Media {
get {
return _media;
}
set {
_media = value;
}
}
public ICssStyleSheet Sheet {
get {
return _styleSheet;
}
set {
_styleSheet = value;
}
}
internal CssImportRule()
: base(CssRuleType.Import)
{
}
protected override void ReplaceWith(ICssRule rule)
{
CssImportRule cssImportRule = rule as CssImportRule;
_href = cssImportRule._href;
_media.Import(cssImportRule._media);
_styleSheet = cssImportRule._styleSheet;
}
protected override string ToCss()
{
string mediaText = _media.MediaText;
return "@import " + _href.CssUrl() + ((mediaText.Length > 0) ? " " : string.Empty) + mediaText;
}
}
}