mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 04:37:44 +00:00
LibWeb: Support line-height: calc(...)
values that resolve to number
This is used on GitHub and many other websites.
This commit is contained in:
parent
dcead6f5eb
commit
966058d693
3 changed files with 23 additions and 0 deletions
8
Tests/LibWeb/Layout/expected/line-height-calc-number.txt
Normal file
8
Tests/LibWeb/Layout/expected/line-height-calc-number.txt
Normal file
|
@ -0,0 +1,8 @@
|
|||
Viewport <#document> at (0,0) content-size 800x600 children: not-inline
|
||||
BlockContainer <html> at (0,0) content-size 800x80 [BFC] children: not-inline
|
||||
BlockContainer <body> at (8,8) content-size 784x64 children: not-inline
|
||||
BlockContainer <div> at (8,8) content-size 784x64 children: inline
|
||||
line 0 width: 100.203125, height: 64, bottom: 64, baseline: 36.796875
|
||||
frag 0 from TextNode start: 0, length: 13, rect: [8,8 100.203125x64]
|
||||
"hello friends"
|
||||
TextNode <#text>
|
6
Tests/LibWeb/Layout/input/line-height-calc-number.html
Normal file
6
Tests/LibWeb/Layout/input/line-height-calc-number.html
Normal file
|
@ -0,0 +1,6 @@
|
|||
<!doctype html><style>
|
||||
div {
|
||||
line-height: calc(2 + 2);
|
||||
background: pink;
|
||||
}
|
||||
</style><div>hello friends
|
|
@ -219,6 +219,15 @@ CSSPixels StyleProperties::line_height(Layout::Node const& layout_node) const
|
|||
}
|
||||
|
||||
if (line_height->is_calculated()) {
|
||||
if (line_height->as_calculated().resolves_to_number()) {
|
||||
auto resolved = line_height->as_calculated().resolve_number();
|
||||
if (!resolved.has_value()) {
|
||||
dbgln("FIXME: Failed to resolve calc() line-height (number): {}", line_height->as_calculated().to_string().release_value_but_fixme_should_propagate_errors());
|
||||
return layout_node.font().pixel_metrics().line_spacing();
|
||||
}
|
||||
return Length(resolved.value(), Length::Type::Em).to_px(layout_node);
|
||||
}
|
||||
|
||||
auto resolved = line_height->as_calculated().resolve_length(layout_node);
|
||||
if (!resolved.has_value()) {
|
||||
dbgln("FIXME: Failed to resolve calc() line-height: {}", line_height->as_calculated().to_string().release_value_but_fixme_should_propagate_errors());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue