|
using AngleSharp.Css;
using AngleSharp.DOM.Collections;
using System;
using System.Text;
namespace AngleSharp.DOM.Css
{
/// <summary>
/// Represents a CSS Stylesheet.
/// </summary>
public class CSSStyleSheet : StyleSheet, ICSSObject
{
#region Members
CSSRuleList cssRules;
CSSRule ownerRule;
#endregion
#region ctor
/// <summary>
/// Creates a new CSS Stylesheet.
/// </summary>
public CSSStyleSheet()
{
cssRules = new CSSRuleList();
}
#endregion
#region Properties
/// <summary>
/// Gets a CSSRuleList of the CSS rules in the style sheet.
/// </summary>
public CSSRuleList CssRules
{
get { return cssRules; }
}
/// <summary>
/// Gets the @import rule if the stylesheet was importated otherwise it returns null.
/// </summary>
public CSSRule OwnerRule
{
get { return ownerRule; }
internal set { ownerRule = value; }
}
#endregion
#region Methods
/// <summary>
/// Removes a style rule from the current style sheet object.
/// </summary>
/// <param name="index">The index representing the position to be removed.</param>
/// <returns>The current stylesheet.</returns>
public CSSStyleSheet DeleteRule(Int32 index)
{
if (index >= 0 && index < cssRules.Length)
cssRules.RemoveAt(index);
return this;
}
/// <summary>
/// Inserts a new style rule into the current style sheet.
/// </summary>
/// <param name="rule">A string containing the rule to be inserted (selector and declaration).</param>
/// <param name="index">The index representing the position to be inserted.</param>
/// <returns>The current stylesheet.</returns>
public CSSStyleSheet InsertRule(String rule, Int32 index)
{
if (index >= 0 && index <= cssRules.Length)
{
var value = CssParser.ParseRule(rule);
cssRules.InsertAt(index, value);
}
return this;
}
#endregion
#region String representation
/// <summary>
/// Returns a CSS code representation of the stylesheet.
/// </summary>
/// <returns>A string that contains the code.</returns>
public virtual String ToCss()
{
var sb = new StringBuilder();
foreach (var rule in cssRules)
sb.AppendLine(rule.ToCss());
return sb.ToString();
}
#endregion
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.
During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.
Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.