blob: 986a657fdc83a68e9bd3675533dddb97eae498b8 [file] [log] [blame] [edit]
<!DOCTYPE html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#intrinsic-sizes">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<meta name="assert" content="min-content width is calculated correctly in a variety of scenarios with two flex items" />
<style>
.zero-width {
width: 0px;
height: 100px;
margin-bottom: 20px;
}
.floating-flexbox {
display: flex;
outline: 5px solid blue;
height: 100px;
float: left;
}
.floating-flexbox>div:nth-child(1) {
background: yellow;
}
.floating-flexbox>div:nth-child(2) {
background: orange;
}
.floating-flexbox>div>div {
width: 100px;
}
</style>
<body onload="checkLayout('.floating-flexbox')">
<main>
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="300">
<div style="flex: 1 1 200px; width:50px;">
<div></div>
</div>
<div style="flex: 1 1 400px; width:50px;">
<div></div>
</div>
</div>
</div>
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="225">
<div style="flex: 1 1 200px; width:50px;">
<div></div>
</div>
<div style="flex: 1 2 400px; width:50px;">
<div></div>
</div>
</div>
</div>
<!-- This is same as above except for min-width auto is no longer in
effect. EdgeHTML renders it differently than the above. -->
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="225">
<div style="flex: 1 1 200px; width:50px; min-width: 0px;">
<div></div>
</div>
<div style="flex: 1 2 400px; width:50px; min-width: 0px;">
<div></div>
</div>
</div>
</div>
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="600">
<div style="flex: 1 0 200px; width:50px;">
<div></div>
</div>
<div style="flex: 1 1 400px; width:50px;">
<div></div>
</div>
</div>
</div>
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="200">
<div style="flex: 0 0 50px; width: 200px;">
<div></div>
</div>
<div style="flex: 0 0 50px; width: 200px;">
<div></div>
</div>
</div>
</div>
<div class="zero-width">
<!-- 200 + 400 = 600 -->
<div class="floating-flexbox" data-expected-width="600">
<!-- contribution: 200 -->
<!-- fraction: 150 -->
<!-- 50 + 1*150 = 200 -->
<div style="flex: 1 0 50px; width: 200px;">
<div></div>
</div>
<!-- contribution: 200 -->
<!-- fraction: 100 -->
<!-- 100 + 2*150 = 400 -->
<div style="flex: 2 0 100px; width: 200px;">
<div></div>
</div>
</div>
</div>
<div class="zero-width">
<div class="floating-flexbox" data-expected-width="400">
<div style="flex: 0 1 200px; width: 50px;">
<div></div>
</div>
<div style="flex: 2 0 100px; width: 200px;">
<div></div>
</div>
</div>
</div>
</main>