| <!DOCTYPE html> |
| <html> |
| <title>CSS Flexbox: Resolving relative height content within a flex container against flexed size</title> |
| <link rel="author" title="Microsoft" href="https://www.microsoft.com/" /> |
| <link rel="author" title="Greg Whitworth" href="gwhit@microsoft.com" /> |
| <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#definite-sizes" /> |
| <link rel="issue" href="https://github.com/w3c/csswg-drafts/issues/1679" /> |
| <meta name="assert" content="This test checks that percentage heights of content within a flex item are resolved against the flexed item" /> |
| |
| <style> |
| .flexbox { |
| display: flex; |
| min-height: 100%; |
| } |
| |
| .column { |
| flex-flow: column; |
| } |
| |
| .column-wrap { |
| flex-flow: column wrap; |
| } |
| |
| .flexbox > div { |
| background: teal; |
| flex-grow: 1; |
| } |
| |
| .flexbox span { |
| height: 100%; |
| background: orange; |
| display: block; |
| } |
| .vert-wm { |
| writing-mode: vertical-rl; |
| } |
| .horiz-wm { |
| writing-mode: horizontal-tb; |
| } |
| </style> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/check-layout-th.js"></script> |
| <body onload="checkLayout('.flexbox')"> |
| <div id=log></div> |
| |
| <!-- The wrapper divs are here to give the flexbox something to fill --> |
| |
| <!-- definite unwrapped column flexbox --> |
| <div style="height: 100px;"> |
| <div class="flexbox column" style="height: 0"> |
| <div> |
| <span data-expected-height="100"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- definite wrapped column flexbox --> |
| <div style="height: 100px;"> |
| <div class="flexbox column-wrap" style="height: 0"> |
| <div> |
| <span data-expected-height="50"></span> |
| </div> |
| <div> |
| <span data-expected-height="50"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- indefinite unwrapped column flexbox --> |
| <div style="height: 100px;"> |
| <div class="flexbox column"> |
| <div> |
| <span data-expected-height="0"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- indefinite unwrapped column flexbox where item doesn't stretch --> |
| <div style="height: 100px;"> |
| <div class="flexbox column"> |
| <div style="align-self: flex-start"> |
| <span data-expected-height="0"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- indefinite wrapped column flexbox --> |
| <div style="height: 100px;"> |
| <div class="flexbox column-wrap"> |
| <div> |
| <span data-expected-height="0"></span> |
| </div> |
| <div> |
| <span data-expected-height="0"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- indefinite unwrapped column flexbox, with orthogonal-flow flex item. The |
| flex item's main size (height) is definite, since it's the item's inline |
| size, and inline sizes always end up definite. --> |
| <div style="height: 100px;"> |
| <div class="flexbox column"> |
| <div class="vert-wm"> |
| <span data-expected-height="100"></span> |
| </div> |
| </div> |
| </div> |
| |
| <!-- indefinite unwrapped row-oriented vertical-writing-mode flexbox, with |
| orthogonal-flow (horizontal-writing-mode) flex item. The flex item's |
| height (main size) is definite, since its parent flex container has a |
| definite main size, because the flex container's main axis is its |
| inline-axis and inline sizes are definite. --> |
| <div style="height: 100px;"> |
| <div class="flexbox vert-wm"> |
| <div class="horiz-wm"> |
| <span data-expected-height="100"></span> |
| </div> |
| </div> |
| </div> |
| |
| </body> |
| </html> |