layout/reftests/css-grid/grid-abspos-items-013.html
author James Teh <jteh@mozilla.com>
Wed, 01 Feb 2023 05:02:01 +0000
changeset 651150 dd0fdd1daa69783be36acd5c50544f3694eaa8f9
parent 281941 fffc339c695c6d3f7578dd4bae0489d606dc2b4f
permissions -rw-r--r--
Bug 1813980: Check IsDoc before Parent in RemoteAccessibleBase::ApplyCrossDocOffset. r=morgan We call this function on every ancestor when calculating bounds. RemoteParent() currently requires a hash lookup, so it's more efficient to early return for !IsDoc() first. This is a micro-optimisation, but it might have some impact given that we call this on every ancestor, especially when hit testing, where we call Bounds() a lot. As a bit of drive-by cleanup, use RemoteParent() rather than calling Parent() and IsRemote/AsRemote(). Differential Revision: https://phabricator.services.mozilla.com/D168346

<!DOCTYPE HTML>
<!--
     Any copyright is dedicated to the Public Domain.
     http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
  <meta charset="utf-8">
  <title>CSS Grid Test: grid abs.pos. child in grid with gutters</title>
  <link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1230695">
  <link rel="help" href="https://drafts.csswg.org/css-grid/#abspos">
  <link rel="match" href="grid-abspos-items-013-ref.html">
  <style type="text/css">
body { width:800px; }

.grid {
  display: grid;
  position: relative;
  grid-template-columns: repeat(5, 20px);
  grid-auto-rows: 10px;
  grid-gap: 10px 100px;
  border: 1px solid;
  padding: 0 3px 0 5px;
  height: 40px;
  margin-bottom: 2px;
}
.grid.r {
  grid-template-columns: 20px;
  grid-template-rows: repeat(5, 20px);
  height: 160px;
  padding: 2px 3px 4px 5px;
  float: left;
  min-width: 70px;
  margin-right: 2px;
}
.c.s {
  justify-content: space-evenly;
  grid-gap: 0;
}

x {
  background: lime;
}

a {
  position: absolute;
  left:0; right:0; bottom:20px; height: 3px;
  background: black;
}
b {
  position: absolute;
  left:0; right:0; bottom:10px; height: 3px;
  background: grey;
}
c {
  position: absolute;
  left:0; right:0; bottom:0; height: 3px;
  background: blue;
}

.r a {
  left:50px; top:0; bottom:0; width: 3px; height:auto;
}
.r b {
  left:40px; top:0; bottom:0; width: 3px; height:auto;
}
.r c {
  left:30px; top:0; bottom:0; width: 3px; height:auto;
}

  </style>
</head>
<body>

<div class="grid c">
<x></x><x></x><x></x><x></x>
<a style="grid-column:2/4"></a><b style="grid-column:auto/4"></b><c style="grid-column:4/auto"></c>
</div>

<div class="grid c">
<x></x><x></x><x></x><x></x>
<a style="grid-column:1/4"></a><b style="grid-column:auto/1"></b><c style="grid-column:1/auto"></c>
</div>

<div class="grid c">
<x></x><x></x><x></x><x></x>
<a style="grid-column:6/6"></a><b style="grid-column:auto/6"></b><c style="grid-column:6/auto"></c>
</div>

<div class="grid c s">
<x></x><x></x><x></x><x></x>
<a style="grid-column:2/4"></a><b style="grid-column:auto/4"></b><c style="grid-column:4/auto"></c>
</div>

<div class="grid c s">
<x></x><x></x><x></x><x></x>
<a style="grid-column:1/4"></a><b style="grid-column:auto/1"></b><c style="grid-column:1/auto"></c>
</div>

<div class="grid c s">
<x></x><x></x><x></x><x></x>
<a style="grid-column:6/6"></a><b style="grid-column:auto/6"></b><c style="grid-column:6/auto"></c>
</div>

<div class="grid r">
<x></x><x></x><x></x><x></x>
<a style="grid-row:2/4"></a><b style="grid-row:auto/4"></b><c style="grid-row:4/auto"></c>
</div>

<div class="grid r">
<x></x><x></x><x></x><x></x>
<a style="grid-row:1/4"></a><b style="grid-row:auto/1"></b><c style="grid-row:1/auto"></c>
</div>

<div class="grid r">
<x></x><x></x><x></x><x></x>
<a style="grid-row:6/6"></a><b style="grid-row:auto/6"></b><c style="grid-row:6/auto"></c>
</div>

</body>
</html>