
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>CSS Test: 'contain: layout' should force all overflow to be ink overflow (including when the overflow comes from floated descendants)</title>
  <link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu">
  <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-layout">
  <link rel="match" href="contain-layout-overflow-002-ref.html">
  <style>
  .contain {
    contain: layout;
  }
  .float { float: left; }
  .outer {
    height: 100px;
    width: 100px;
  }
  .auto {
    overflow: auto;
  }
  .inner-sm {
    height: 50px;
    width: 50px;
    background: lightblue;
  }
  .inner-lg {
    height: 200px;
    width: 200px;
    background: lightblue;
  }
  .pass {
    background: green;
  }
  .fail {
    background: red;
  }
  .border {
    border: 5px solid green;
  }
  </style>
</head>
<body>
  <!--CSS Test: Elements with contain:layout that do not produce scrollable overflow should paint as if containment were not applied. -->
  <div class="outer">
    <div class="inner-sm contain float"></div>
  </div>
  <br>

  <!--CSS Test: Layout-contained elements that overflow their container and have children who overflow should produce the same amount of scrollable overflow as if there were no children. -->
  <div class="outer auto">
    <div class="inner-lg contain">
      <div class="inner-lg pass float"></div>
      <div class="inner-lg fail float"></div>
    </div>
  </div>
  <br>

  <!--CSS Test: Layout-contained elements that do not overflow their container, but have children who overflow, should not allow their children to affect the scrollable overflow regions of their parent. -->
  <div class="outer auto">
    <div class="inner-sm contain border">
      <div class="inner-lg float">
      </div>
    </div>
  </div>
</body>
</html>
