<!DOCTYPE html> <meta charset="utf-8" /> <title>CSS Reftest Reference</title> <link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com" /> <style> .test { display: block; overflow: hidden; width: 300px; } .inline { display: inline; } .float, .clear { display: block; overflow: hidden; height: 3px; width: 100px; background: #f0f; } .clear { background: #0ff; } </style> <body> <script> function physicalValue(value, containerDirection) { return ((value === "inline-start") === (containerDirection === "ltr")) ? "left" : "right"; } const sides = ["inline-start", "inline-end"]; const directions = ["ltr", "rtl"]; for (const floatSide of sides) { for (const clearSide of sides) { for (const containerDirection of directions) { for (const inlineParentDirection of [null, ...directions]) { for (const floatDirection of directions) { for (const clearDirection of directions) { const containerEl = document.createElement("div"); containerEl.className = "test"; containerEl.style.direction = containerDirection; const floatEl = document.createElement("div"); floatEl.className = "float"; floatEl.style.direction = floatDirection; floatEl.style.float = physicalValue(floatSide, containerDirection); const clearEl = document.createElement("div"); clearEl.className = "clear"; clearEl.style.direction = floatDirection; clearEl.style.clear = physicalValue(clearSide, containerDirection); if (inlineParentDirection) { const inlineParent = document.createElement("div"); inlineParent.className = "inline"; inlineParent.style.direction = inlineParentDirection; inlineParent.appendChild(floatEl); inlineParent.appendChild(clearEl); containerEl.appendChild(inlineParent); } else { containerEl.appendChild(floatEl); containerEl.appendChild(clearEl); } document.body.appendChild(containerEl); } } } } } } </script> </body>