HTMLStyleElement
Represents the HTML style element.
using AngleSharp.DOM.Css;
using System;
namespace AngleSharp.DOM.Html
{
[DOM("HTMLStyleElement")]
public sealed class HTMLStyleElement : HTMLElement, IStyleSheet
{
private CSSStyleSheet _sheet;
[DOM("sheet")]
public StyleSheet Sheet {
get {
return _sheet;
}
}
[DOM("disabled")]
public bool Disabled {
get {
return Sheet.Disabled;
}
set {
Sheet.Disabled = value;
}
}
[DOM("media")]
public string Media {
get {
return GetAttribute(AttributeNames.Media);
}
set {
SetAttribute(AttributeNames.Media, value);
}
}
[DOM("type")]
public string Type {
get {
return GetAttribute(AttributeNames.Type);
}
set {
SetAttribute(AttributeNames.Type, value);
}
}
protected internal override bool IsSpecial => true;
internal HTMLStyleElement()
{
_name = "style";
_sheet = new CSSStyleSheet();
_sheet.OwnerNode = this;
_children.ElementsChanged += OnChildrenChanged;
}
public override string ToText()
{
return string.Empty;
}
private void OnChildrenChanged(object sender, EventArgs e)
{
_sheet.ReevaluateFromSource(TextContent);
}
internal override void OnAttributeChanged(string name)
{
if (name.Equals(AttributeNames.Media, StringComparison.Ordinal))
_sheet.Media.MediaText = Media;
else
base.OnAttributeChanged(name);
}
}
}