lol_html 1.2.1

Streaming HTML rewriter/parser with CSS selector-based API
Documentation
<html><head>
  <title>NEGATED :nth-last-of-type() pseudo-class</title>
  <style type="text/css">.red { background-color : red }
p:not(:nth-last-of-type(3)) { background-color : lime }
dl > *:not(:nth-last-of-type(3n+1)) { background-color : lime }
</style>
  <link rel="author" title="Daniel Glazman" href="http://glazman.org/">
  <link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch">
  <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"> <!-- bogus link to make sure it gets found -->
  <meta name="flags" content="">
 </head>
 <body>
<p>This paragraph should be unstyled.</p>
<address>This address should be unstyled.</address>
<p class="red">This paragraph should have green background.</p>
<p class="red">This paragraph should have green background.</p>
<dl>
  <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dt class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->First definition term that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dt><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
    <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dd class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->First definition that should also have a green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dd><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
  <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dt class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Second definition term that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dt><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
    <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dd class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Second definition that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dd><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
  <dt>Third definition term.</dt>
    <dd>Third definition.</dd>
  <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dt class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Fourth definition term that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dt><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
    <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dd class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Fourth definition that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dd><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
  <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dt class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Fifth definition term that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dt><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
    <!--[ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]--><dd class="red"><!--[TEXT('dl > *:not(:nth-last-of-type(3n+1))')]-->Fifth definition that should have green background.<!--[/TEXT('dl > *:not(:nth-last-of-type(3n+1))')]--></dd><!--[/ELEMENT('dl > *:not(:nth-last-of-type(3n+1))')]-->
  <dt>Sixth definition term.</dt>
    <dd>Sixth definition.</dd>
</dl>

</body></html>