| <style> | |
| body { | |
| margin: 0; | |
| } | |
| .flexbox { | |
| display: -webkit-flex; | |
| background-color: green; | |
| height: 100px; | |
| width: 100px; | |
| margin: 10px; | |
| } | |
| .flexbox > * { | |
| -webkit-flex: none; | |
| } | |
| .align-center { | |
| -webkit-align-items: center; | |
| } | |
| .stretch { | |
| -webkit-align-items: stretch; | |
| } | |
| .relative { | |
| position: relative; | |
| } | |
| .flexbox > div { | |
| width: 20px; | |
| height: 20px; | |
| } | |
| .absolute { | |
| position: absolute; | |
| } | |
| #placed-absolute { | |
| top: 20px; | |
| left: 20px; | |
| } | |
| .horizontal-tb { | |
| -webkit-writing-mode: horizontal-tb; | |
| } | |
| .horizontal-bt { | |
| -webkit-writing-mode: horizontal-bt; | |
| } | |
| .vertical-rl { | |
| -webkit-writing-mode: vertical-rl; | |
| } | |
| .vertical-lr { | |
| -webkit-writing-mode: vertical-lr; | |
| } | |
| .row { | |
| -webkit-flex-flow: row; | |
| } | |
| .row-reverse { | |
| -webkit-flex-flow: row-reverse; | |
| } | |
| .column { | |
| -webkit-flex-flow: column; | |
| } | |
| .column-reverse { | |
| -webkit-flex-flow: column-reverse; | |
| } | |
| .rtl { | |
| direction: rtl; | |
| } | |
| .ltr { | |
| direction: ltr; | |
| } | |
| .wrap { | |
| -webkit-flex-wrap: wrap; | |
| } | |
| .wrap-reverse { | |
| -webkit-flex-wrap: wrap-reverse; | |
| } | |
| .flexbox :nth-child(1) { | |
| background-color: blue; | |
| } | |
| .flexbox :nth-child(2) { | |
| background-color: yellow; | |
| } | |
| .flexbox :nth-child(3) { | |
| background-color: salmon; | |
| } | |
| .flexbox :nth-child(4) { | |
| background-color: grey; | |
| } | |
| .flexbox :nth-child(5) { | |
| background-color: red; | |
| } | |
| .flexbox :nth-child(6) { | |
| background-color: orange; | |
| } | |
| .flexbox :nth-child(7) { | |
| background-color: purple; | |
| } | |
| </style> | |
| <script src="../../fast/js/resources/js-test-pre.js"></script> | |
| <script src="../../resources/check-layout.js"></script> | |
| <body onload="checkLayout('.flexbox')"> | |
| <div class='flexbox relative align-center'> | |
| <div id='placed-absolute' class='absolute' data-offset-x=20 data-offset-y=20></div> | |
| </div> | |
| <div class='flexbox relative align-center'> | |
| <div data-offset-x=0 data-offset-y=40></div> | |
| <div class='absolute' data-offset-x=20 data-offset-y=0></div> | |
| <div data-offset-x=20 data-offset-y=40></div> | |
| <div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div> | |
| </div> | |
| <div class="relative"> | |
| <div class='flexbox align-center'> | |
| <div data-offset-x=10 data-offset-y=40></div> | |
| <div class='absolute' data-offset-x=30 data-offset-y=0></div> | |
| <div data-offset-x=30 data-offset-y=40></div> | |
| <div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div> | |
| </div> | |
| </div> | |
| <div class='flexbox relative column rtl'> | |
| <div data-offset-x=80 data-offset-y=0></div> | |
| <div class='absolute' data-offset-x=80 data-offset-y=20></div> | |
| <div data-offset-x=80 data-offset-y=20></div> | |
| <div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div> | |
| </div> | |
| <div class="relative"> | |
| <div class='flexbox wrap-reverse'> | |
| <div style="width:90px" data-offset-x=10 data-offset-y=80></div> | |
| <div class="absolute" data-offset-x=100 data-offset-y=100></div> | |
| <div data-offset-x=10 data-offset-y=30></div> | |
| <div class="absolute" data-offset-x=30 data-offset-y=50></div> | |
| <div data-offset-x=30 data-offset-y=30></div> | |
| <div class="absolute" data-offset-x=50 data-offset-y=50></div> | |
| <div class="absolute" style="top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div> | |
| </div> | |
| </div> | |
| <div class='flexbox relative'> | |
| <div style="margin: auto;" data-offset-x=40 data-offset-y=40></div> | |
| <div class="absolute" style="margin: auto;" data-offset-x=100 data-offset-y=0></div> | |
| <div class="absolute" style="margin: auto;" data-offset-x=100 data-offset-y=0></div> | |
| <div class="absolute" style="margin: auto; top: 5px; left: 5px" data-offset-x=5 data-offset-y=5></div> | |
| </div> | |
| <div class='flexbox stretch relative'> | |
| <div style="height: auto" data-offset-x=0 data-offset-y=0 data-expected-height=100></div> | |
| <div class="absolute" style="height: auto" data-offset-x=20 data-offset-y=0 data-expected-height=0></div> | |
| <div class="absolute" style="height: auto; top: 5px; left: 5px" data-offset-x=5 data-offset-y=5 data-expected-height=0></div> | |
| </div> | |
| <div class="flexbox wrap relative"> | |
| <div style="width: 100px;" data-offset-x=0 data-offset-y=0></div> | |
| <div class="absolute" data-offset-x=100 data-offset-y=0></div> | |
| <div style="width: 50px;" data-offset-x=0 data-offset-y=50></div> | |
| <div class="absolute" data-offset-x=50 data-offset-y=50></div> | |
| <div style="width: 50px;" data-offset-x=50 data-offset-y=50></div> | |
| <div class="absolute" data-offset-x=100 data-offset-y=50></div> | |
| </div> | |
| <div class="flexbox wrap relative" style="-webkit-align-items: flex-end"> | |
| <div style="width: 100px;" data-offset-x=0 data-offset-y=30></div> | |
| <div class="absolute" data-offset-x=100 data-offset-y=0></div> | |
| <div style="width: 50px;" data-offset-x=0 data-offset-y=80></div> | |
| <div class="absolute" data-offset-x=50 data-offset-y=50></div> | |
| <div style="width: 50px;" data-offset-x=50 data-offset-y=80></div> | |
| <div class="absolute" data-offset-x=100 data-offset-y=50></div> | |
| </div> | |
| <script> | |
| var absolute = document.getElementById('placed-absolute'); | |
| var beforePosition = absolute.getBoundingClientRect(); | |
| document.querySelector('.flexbox').style.height = '101px'; | |
| var afterPosition = absolute.getBoundingClientRect(); | |
| // Positioned element should not change position when the height of it's parent flexbox is changed. | |
| for (key in beforePosition) | |
| shouldBe('beforePosition[key]', 'afterPosition[key]'); | |
| </script> | |
| </body> |