FirstColumnSelector
The nth-column selector.
using AngleSharp.Css;
using AngleSharp.Dom.Html;
using System;
namespace AngleSharp.Dom.Css
{
internal sealed class FirstColumnSelector : ChildSelector
{
public FirstColumnSelector()
: base(PseudoClassNames.NthColumn)
{
}
public override bool Match(IElement element)
{
IElement parentElement = element.ParentElement;
if (parentElement != null) {
int num = Math.Sign(_step);
int num2 = 0;
for (int i = 0; i < parentElement.ChildNodes.Length; i++) {
IHtmlTableCellElement htmlTableCellElement = parentElement.ChildNodes[i] as IHtmlTableCellElement;
if (htmlTableCellElement != null) {
int columnSpan = htmlTableCellElement.ColumnSpan;
num2 += columnSpan;
if (htmlTableCellElement == element) {
int num3 = num2 - _offset;
int num4 = 0;
while (num4 < columnSpan) {
if (num3 == 0 || (Math.Sign(num3) == num && num3 % _step == 0))
return true;
num4++;
num3--;
}
return false;
}
}
}
}
return false;
}
}
}