<!DOCTYPE html>
<html>
  <head>
    <title>CSS Selectors: :is()</title>
    <link rel="author" title="Victoria Su" href="mailto:victoriaytsu@google.com">
    <link rel="help" href="https://drafts.csswg.org/selectors-4/#matches">
    <meta name="assert" content="This tests that the :is() selector chooses the correct specificity">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <style>
      .b.c + .d + .q.r + .s + #target {
        font-size: 10px;
        height: 10px;
        width: 10px;
      }
      :is(.a, .b.c + .d, .q) + :is(* + .p, .q.r + .s, * + .t) + #target {
        height: 20px;
        width: 20px;
      }
      .b.c + .d + .q.r + .s + #target {
        width: 30px;
      }
    </style>
  </head>
  <body>
    <div class="b c"></div>
    <div class="a d e"></div>
    <div class="q r"></div>
    <div class="p s t"></div>
    <div id="target"></div>
    <script>

      test(() => {
        assert_equals(getComputedStyle(target).width, "30px");
        assert_equals(getComputedStyle(target).height, "20px");
        assert_equals(getComputedStyle(target).fontSize, "10px");
      }, "Test :is() uses highest possible specificity");

    </script>
  </body>
</html>