mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
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.
30 lines
1.0 KiB
HTML
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>
|