|
using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
namespace AngleSharp.DOM.Css
{
/// <summary>
/// Represents a compound selector.
/// Chain of simple selectors which are not separated by
/// a combinator.
/// </summary>
class CompoundSelector : Selectors
{
#region ctor
/// <summary>
/// Creates a new compound selector.
/// </summary>
public CompoundSelector()
{
}
/// <summary>
/// Creates a new compound selector with the given selectors.
/// </summary>
/// <param name="selectors">The selectors.</param>
/// <returns>The new compound selector.</returns>
internal static CompoundSelector Create(params SimpleSelector[] selectors)
{
var compound = new CompoundSelector();
for (int i = 0; i < selectors.Length; i++)
compound.selectors.Add(selectors[i]);
return compound;
}
#endregion
#region Methods
/// <summary>
/// Determines if the given object is matched by this selector.
/// </summary>
/// <param name="element">The element to be matched.</param>
/// <returns>True if the selector matches the given element, otherwise false.</returns>
public override bool Match(Element element)
{
for (int i = 0; i < selectors.Count; i++)
{
if (!selectors[i].Match(element))
return false;
}
return true;
}
#endregion
#region String Representation
/// <summary>
/// Returns a valid CSS string representing this selector.
/// </summary>
/// <returns>The CSS to create this selector.</returns>
public override string ToCss()
{
var sb = new StringBuilder();
for (int i = 0; i < selectors.Count; i++)
sb.Append(selectors[i].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.