| <!DOCTYPE html> |
| |
| <title>CSS Flexbox: Definite cross sizes</title> |
| |
| <style> |
| .rect { |
| width: 50px; |
| height: 50px; |
| background-color: green; |
| } |
| |
| .flexbox { |
| width: 50px; |
| outline: 3px solid black; |
| } |
| |
| .flexbox > div > div { |
| overflow: hidden; |
| } |
| </style> |
| |
| <link rel="stylesheet" href="resources/flexbox.css"> |
| <link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#definite-sizes"> |
| <link rel="author" title="Google Inc." href="https://www.google.com/"> |
| |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../../resources/check-layout-th.js"></script> |
| |
| <body onload="checkLayout('.flexbox')" style="height: 800px;"> |
| <div id=log></div> |
| |
| <p>This test verifies that we consider flex items' cross sizes to be definite |
| if the align value is stretch (the default)</p> |
| |
| <p>Tests that we get a definite size in the simple case.</p> |
| <div class="flexbox" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we get an definite size in a wrapping flexbox</p> |
| <div class="flexbox wrap" style="height: 50px;" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we get an indefinite size when not stretch-aligning</p> |
| <div class="flexbox wrap" style="height: 50px;" data-expected-height="50"> |
| <div class="align-self-flex-start" data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="50"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we get an definite size in a definite-height flexbox</p> |
| <div class="flexbox" style="height: 50px;" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we get an definite size in a nested flexbox where only the outer one has an explicit height</p> |
| <div class="flexbox" style="height: 50px;" data-expected-height="50"> |
| <div class="flexbox" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we get an definite size in a nested flexbox where only the outer one has an explicit height and has an opposite direction.</p> |
| <div class="flexbox" style="height: 50px;" data-expected-height="50"> |
| <div class="flexbox column" data-expected-height="50"> |
| <div class="flex-one" data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we respect min-height</p> |
| <div class="flexbox" style="height: 50px;" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%; min-height: 30px;" data-expected-height="30"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that percentage sizes can also be definite</p> |
| <div class="flexbox" style="height: 10%;" data-expected-height="80"> |
| <div data-expected-height="80"> |
| <div style="height: 50%" data-expected-height="40"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we use a definite size even when a percentage size is not definite</p> |
| <div> |
| <div class="flexbox" style="height: 10%;" data-expected-height="50"> |
| <div data-expected-height="50"> |
| <div style="height: 50%" data-expected-height="25"> |
| <div class="rect" data-expected-height="50"></div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <p>Tests that we don't mix up widths and heights</p> |
| <div class="flexbox" style="height: 50px; width: 100px;" data-expected-height="50"> |
| <div style="width: 100px;" data-expected-height="50" data-expected-width="100"> |
| <div style="width: 50%" data-expected-width="50"> |
| <div class="rect" data-expected-height="50" data-expected-width="50"></div> |
| </div> |
| </div> |
| </div> |