Files
ladybird/Tests/LibWeb/Text/input/css/getComputedStyle-blockification-on-parent-display-change.html
Andreas Kling 3b90eb1d49 LibWeb: Recompute child style when parent's display changes
When a parent element's display property changes (e.g., to flex or
grid), children may need to be blockified or un-blockified.
Previously, children only received a recompute_inherited_style() call
which doesn't run the blockification logic.

This patch adds a parent_display_changed flag to the recursive style
update that forces children to get a full style recompute when their
parent's display change triggers a layout tree rebuild.
2026-01-26 12:40:36 +01:00

30 lines
1.0 KiB
HTML

<!DOCTYPE html>
<link rel="author" href="mailto:kling@ladybird.org">
<script src="../include.js"></script>
<style>
#container { display: block; }
</style>
<div id="container">
<span id="child">test</span>
</div>
<script>
test(() => {
const container = document.getElementById("container");
const child = document.getElementById("child");
// Initially, span should be inline
println(`Initial child display: ${getComputedStyle(child).display}`);
// Change parent to flex - child should get blockified
container.style.display = "flex";
// Query color first (doesn't need layout) to trigger only update_style()
println(`Color after flex: ${getComputedStyle(child).color}`);
println(`Display after flex: ${getComputedStyle(child).display}`);
// Change parent back to block - child should un-blockify
container.style.display = "block";
println(`Display after block: ${getComputedStyle(child).display}`);
});
</script>