<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Selectors :last-child</title>
<link rel="help" href="https://drafts.csswg.org/selectors-4/#the-last-child-pseudo">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<!--
  See also:
  * child-indexed-pseudo-class.html
  * child-indexed-no-parent.html
  * invalidation/first-child-last-child.html
-->
<body>

<div>
  <div id="target1">Whitespace nodes should be ignored.</div>
</div>

<div>
  <blockquote></blockquote>
  <div id="target2">There is a prior child element.</div>
</div>

<div>
  <div id="target3">A comment node should be ignored.</div>
  <!-- -->
</div>

<div>
  <div id="target4">Non-whitespace text node should be ignored.</div>
  .
</div>

<div>
  <div id="target5" data-expected="false">The first child should not be matched.</div>
  <blockquote></blockquote>
</div>

<script>
for (let i = 1; i <= 5; ++i) {
  let target = document.querySelector(`#target${i}`);
  test(() => {
    if (target.dataset.expected == 'false')
      assert_false(target.matches(':last-child'));
    else
      assert_true(target.matches(':last-child'));
  }, target.textContent);
}
</script>

