testing/web-platform/tests/css/css-contain/contain-layout-ink-overflow-018.html
author dadaa <daisuke.akatsuka@birchill.co.jp>
Wed, 09 Jul 2025 04:53:58 +0000 (6 hours ago)
changeset 795836 a5500d271fe3a1fefb4d81d96fc4abd00d9eade7
parent 430669 c57c29cbaf88085055b5c1401e0c0d47f3e17b5a
permissions -rw-r--r--
Bug 1957280: Limit user's mouse amount for tree component r=places-reviewers,reusable-components-reviewers,masayuki,mstriemer Differential Revision: https://phabricator.services.mozilla.com/D251224
<!DOCTYPE html>

  <meta charset="UTF-8">

  <title>CSS Containment Test: 'contain: layout' and ink overflow</title>

  <link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
  <link rel="help" href="https://www.w3.org/TR/css-overflow-3/#ink-overflow">
  <link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-layout">
  <link rel="match" href="reference/contain-layout-ink-overflow-015-ref.html">

  <meta content="This test checks that when the contents of an element with 'contain: layout' overflows, its contents must be treated as ink overflow. In this test, the content overflows the div#inner. If such content was treated as 'overflow: visible', then the div#outer would 'pick up' such content and would make it reachable and accessible via its own generated scrollbar. But the overflowed content must be treated as ink overflow and is therefore treated as a graphical effect that is beyond the scrolling mechanism and outside the scrolling mechanism." name="assert">

  <style>
  div#outer
    {
      font-family: monospace;
      font-size: 100px;
      height: 2.8ch;
      line-height: 1.5; /* computes to 150px */
      width: 4ch;

      overflow: auto;
    }

  div#inner
    {
      color: red;
      contain: layout;
      height: 0;
      width: 0;
    }
  </style>

  <!--

  150px : height of 1 line box

  -->

 <body onload="document.getElementById('outer').scrollLeft = 4000; document.getElementById('outer').scrollTop = 150;">

  <p>Test passes if there is no red.

  <div id="outer">
    <div id="inner"><br>FAIL</div>
  </div>