| <!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> |