1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 17:57:35 +00:00

LibWeb: Update anonymous wrappers when applying style changes

Anonymous wrapper boxes inherit style from their layout tree parent,
and since style data is per-layout-node, we have to manually sync them
from parent to anonymous children when something changes.

This is not very elegant or efficient, so I've left a FIXME about
solving it in a nicer way.

This fixes horizontal dog alignment on https://waffles.dog/ :^)
This commit is contained in:
Andreas Kling 2023-07-03 12:49:13 +02:00
parent b918ce4022
commit 510dfbb7e6
4 changed files with 36 additions and 0 deletions

View file

@ -0,0 +1,13 @@
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
BlockContainer <html> at (0,0) content-size 800x89.846250 [BFC] children: not-inline
BlockContainer <body> at (8,21.440000) content-size 784x73.846250 children: not-inline
BlockContainer <h1> at (8,21.440000) content-size 784x34.9375 children: inline
line 0 width: 105.53125, height: 34.9375, bottom: 34.9375, baseline: 27.0625
frag 0 from TextNode start: 0, length: 6, rect: [8,21.440000 105.53125x34.9375]
"header"
TextNode <#text>
BlockContainer <(anonymous)> at (8,77.817501) content-size 784x17.46875 children: inline
line 0 width: 212.125, height: 17.46875, bottom: 17.46875, baseline: 13.53125
frag 0 from TextNode start: 0, length: 24, rect: [8,77.817501 212.125x17.46875]
"anonymously wrapped text"
TextNode <#text>

View file

@ -0,0 +1,8 @@
<!doctype html><style>
body {
text-align: center;
}
</style><body><h1>header</h1>anonymously wrapped text<script>
document.body.offsetWidth; // Force a layout.
document.body.style.textAlign = 'left';
</script>