mirror of
https://github.com/RGBCube/serenity
synced 2025-05-22 16:45:08 +00:00
LibWeb/CSS: Resolve value of "height" in special way according to spec
Per spec value of height should be resolved to used value if "display" property is not "none" or "contents".
This commit is contained in:
parent
582bf1eaf3
commit
7411f66fcf
2 changed files with 15 additions and 5 deletions
|
@ -81,7 +81,7 @@ grid-row-start: auto
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
grid-template-columns:
|
grid-template-columns:
|
||||||
grid-template-rows:
|
grid-template-rows:
|
||||||
height: auto
|
height: 1411px
|
||||||
image-rendering: auto
|
image-rendering: auto
|
||||||
inset-block-end: auto
|
inset-block-end: auto
|
||||||
inset-block-start: auto
|
inset-block-start: auto
|
||||||
|
|
|
@ -270,11 +270,21 @@ RefPtr<StyleValue const> ResolvedCSSStyleDeclaration::style_value_for_property(L
|
||||||
// -> padding-top
|
// -> padding-top
|
||||||
// -> width
|
// -> width
|
||||||
// -> A resolved value special case property like height defined in another specification
|
// -> A resolved value special case property like height defined in another specification
|
||||||
// FIXME: If the property applies to the element or pseudo-element and the resolved value of the
|
case PropertyID::Height: {
|
||||||
// display property is not none or contents, then the resolved value is the used value.
|
// If the property applies to the element or pseudo-element and the resolved value of the
|
||||||
// Otherwise the resolved value is the computed value.
|
// display property is not none or contents, then the resolved value is the used value.
|
||||||
case PropertyID::Height:
|
// Otherwise the resolved value is the computed value.
|
||||||
|
auto const& display = layout_node.computed_values().display();
|
||||||
|
if (!display.is_none() && !display.is_contents() && layout_node.paintable()) {
|
||||||
|
if (layout_node.paintable()->is_paintable_box()) {
|
||||||
|
auto const& paintable_box = static_cast<Painting::PaintableBox const&>(*layout_node.paintable());
|
||||||
|
auto const used_height = paintable_box.content_height();
|
||||||
|
return style_value_for_size(Size::make_px(used_height));
|
||||||
|
}
|
||||||
|
dbgln("FIXME: Support getting used height for ({})", layout_node.debug_description());
|
||||||
|
}
|
||||||
return style_value_for_size(layout_node.computed_values().height());
|
return style_value_for_size(layout_node.computed_values().height());
|
||||||
|
}
|
||||||
case PropertyID::MarginBlockEnd:
|
case PropertyID::MarginBlockEnd:
|
||||||
return style_value_for_length_box_logical_side(layout_node, layout_node.computed_values().margin(), LogicalSide::BlockEnd);
|
return style_value_for_length_box_logical_side(layout_node, layout_node.computed_values().margin(), LogicalSide::BlockEnd);
|
||||||
case PropertyID::MarginBlockStart:
|
case PropertyID::MarginBlockStart:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue