<!DOCTYPE html>
<style>
.halfsquare { width:15px; height:30px; background:blue; }
</style>
<p>There should be a blue square below.</p>
<div style="position:relative; columns:2; column-gap:0; column-fill:auto; width:400px; height:90px; line-height:20px;">
<div style="margin-left:auto; margin-bottom:30px;" class="halfsquare"></div>
<div id="float1" style="float:left; width:60px; height:30px;"></div>
<div id="float2" style="float:left; width:130px; height:15px;"></div>
<div id="float3" style="float:left;" class="halfsquare"><br></div>
</div>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
test(() => {
// #float1 and #float2 fit beside each other, since their total
// width is 190px, and column width is greater, i.e. 200px.
//
// #float3 is 15px wide. It cannot fit beside both #float1 and
// #float2, because that would exceed the column width. It could
// fit beside #float2 alone, though. However, at this point we
// only have 15px of available height remaining in the first
// column, and #float3 requires 20px (the blank line inside,
// which is unbreakable), so it needs to be pushed to the next
// column, and thus end up after both preceding floats.
var float3 = document.getElementById("float3");
assert_equals(float3.offsetTop, 0);
assert_equals(float3.offsetLeft, 200);
}, "Float pushed down by sibling float, and then by pagination, affecting final inline position.");
</script>