| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>CSS Grid Layout Test: Grid items with percentage margins</title> |
| <link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> |
| <link rel="help" href="https://drafts.csswg.org/css-grid-1/#item-margins"> |
| <meta name="assert" content="Checks grid items percentage margins are resolved against the inline size of their grid area (in a fixed size track)."> |
| <link rel="stylesheet" href="support/grid.css"> |
| <style> |
| .grid { |
| font: 10px/1 Ahem; |
| grid-template-columns: 100px; |
| width: 500px; |
| justify-items: start; |
| position: relative; |
| } |
| |
| .grid > div:nth-child(1) { background: cyan; } |
| .grid > div:nth-child(2) { |
| background: magenta; |
| width: 100%; |
| height: 10px; |
| } |
| |
| .marginLeft50Percent { margin-left: 50%; } |
| .marginRight50Percent { margin-right: 50%; } |
| .marginTop50Percent { margin-top: 50%; } |
| .marginBottom50Percent { margin-bottom: 50%; } |
| </style> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/check-layout-th.js"></script> |
| |
| <body onload="checkLayout('.grid')"> |
| |
| <div id="log"></div> |
| |
| <h3>Direction LTR</h3> |
| |
| <pre>Item margin-left: 50%;</pre> |
| |
| <div class="grid"> |
| <div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="50" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="0" data-offset-y="10" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-right: 50%;</pre> |
| |
| <div class="grid"> |
| <div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="0" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="0" data-offset-y="10" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-top: 50%;</pre> |
| |
| <div class="grid"> |
| <div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="50" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="0" data-offset-y="60" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-bottom: 50%;</pre> |
| |
| <div class="grid"> |
| <div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="0" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="0" data-offset-y="60" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <h3>Direction RTL</h3> |
| |
| <pre>Item margin-left: 50%;</pre> |
| |
| <div class="grid directionRTL"> |
| <div class="marginLeft50Percent" data-expected-margin-left="50" data-offset-x="490" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="400" data-offset-y="10" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-right: 50%;</pre> |
| |
| <div class="grid directionRTL"> |
| <div class="marginRight50Percent" data-expected-margin-right="50" data-offset-x="440" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="400" data-offset-y="10" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-top: 50%;</pre> |
| |
| <div class="grid directionRTL"> |
| <div class="marginTop50Percent" data-expected-margin-top="50" data-offset-y="50" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="400" data-offset-y="60" data-expected-width="100" data-expected-height="10"></div> |
| </div> |
| |
| <pre>Item margin-bottom: 50%;</pre> |
| |
| <div class="grid directionRTL"> |
| <div class="marginBottom50Percent" data-expected-margin-bottom="50" data-offset-y="0" data-expected-width="10" data-expected-height="10">X</div> |
| <div data-offset-x="400" data-offset-y="60" data-expected-width="100" data-expected-height="10"></div> |
| </div> |