<!DOCTYPE html><linkrel="help"href="https://drafts.csswg.org/css-values-4/#comp-func"><linkrel="help"href="https://drafts.csswg.org/css-values-4/#lengths"><linkrel="help"href="https://drafts.csswg.org/css-values-4/#calc-serialize"><linkrel="author"title="Xiaocheng Hu"href="mailto:xiaochengh@chromium.org"><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><scriptsrc="../support/serialize-testcommon.js"></script><divstyle="width: 100px;"><divid=target></div></div><script>functiontest_serialization(t,s,c,u,{prop}={}){test_specified_serialization(prop||'text-indent',t,s);test_computed_serialization(prop||'text-indent',t,c);if(u)test_used_serialization(prop||'margin-left',t,u);}test_serialization('min(1px)','calc(1px)','1px');test_serialization('min(1in)','calc(96px)','96px');test_serialization('max(1px)','calc(1px)','1px');test_serialization('max(1in)','calc(96px)','96px');// Values are case-insensitive and serialize as lower case, for example 1Q// serializes as 1q.test_serialization('min(1PX)','calc(1px)','1px');// Arguments simplify down eagerlytest_serialization('min(50px, 1in + 1px)','calc(50px)','50px');test_serialization('max(50px, 1in + 1px)','calc(97px)','97px');// And the entire function simplifies eagerly if possibletest_serialization('calc(1px + min(1in, 100px))','calc(97px)','97px');test_serialization('calc(1px + max(1in, 100px))','calc(101px)','101px');// Computed-value units preserve min()/max() in specified valuestest_serialization('min(1px, 1em)','min(1px, 1em)','1px');test_serialization('calc(min(1px, 1in) + max(100px + 1em, 10px + 1in) + 1px)','calc(2px + max(1em + 100px, 106px))','118px');// https://crbug.com/411359798test_serialization('calc(2 * (.2 * min(1em, 1px)) + 1px)','calc(1px + (0.4 * min(1em, 1px)))','1.4px');// Can't test that min()/max() are preserved in computed values with just lengths;// see minmax-length-percentage-serialize for tests of that.</script>