<!doctype html> <meta charset="utf-8"> <title>CSS Tests: calc() and division for integers</title> <link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> <link rel="author" title="Mozilla" href="https://mozilla.org"> <link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-range"> <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2337"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id="test"></div> <script> const TESTS = [ { specified: "calc(2)", computed: "2", description: "Sanity", }, { specified: "calc(4 / 2)", computed: "2", description: "Basic division works", }, { specified: "calc(1 / 2)", computed: "1", description: "Rounds up if fractional part is >= 0.5", }, { specified: "calc(0.5)", computed: "1", description: "Accepts numbers, and rounds", }, { specified: "calc(6 / 2.0)", computed: "3", description: "Operation between <integer> and <number> works", }, { specified: "calc(1 / 3)", computed: "0", description: "Rounds down if fractional part is < 0.5", }, { specified: "calc(calc(1 / 3) * 3)", computed: "1", description: "Only rounds at the end of the conversion", } ]; const testElement = document.getElementById("test"); for (const { specified, computed, description } of TESTS) { test(function() { testElement.style.zIndex = "42"; // Just something that we know it's valid and makes tests not rely on order. testElement.style.zIndex = specified; assert_equals(getComputedStyle(testElement).zIndex, computed); }, description); } </script>