<!DOCTYPE html>
<link rel="author" title="Morten Stenshorne" href="mailto:[email protected]">
<link rel="help" href="https://www.w3.org/TR/CSS22/box.html#propdef-padding-left">
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#valdef-width-fit-content-length-percentage">
<meta name="assert" content="The shrink-to-fit container (#stf) should be just wide enough to fit both floats beside each other. The percentage padding shouldn't be affected by intrinsic sizing; it's simply resolved from its containing block (#container), which doesn't participate in the intrinsic size calculation at all.">
<div id="container" style="width:400px; height:200px;">
<div id="stf" style="width:fit-content; padding-left:20%;">
<div style="float:left; width:50px; height:100px; background:cyan;"></div>
<div style="float:left; width:50px; height:100px; background:hotpink;"></div>
</div>
</div>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
var container = document.getElementById("container");
var stf = document.getElementById("stf");
test(()=> {
assert_equals(stf.offsetWidth, 180);
}, "Initial layout");
test(()=> {
container.style.width = "300px";
assert_equals(stf.offsetWidth, 160);
}, "Shrink width");
test(()=> {
container.style.width = "500px";
assert_equals(stf.offsetWidth, 200);
}, "Grow width");
</script>