diff --git a/Userland/Libraries/LibWeb/Layout/Node.cpp b/Userland/Libraries/LibWeb/Layout/Node.cpp index 83d8719495..8af30c93be 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.cpp +++ b/Userland/Libraries/LibWeb/Layout/Node.cpp @@ -223,9 +223,13 @@ void NodeWithStyle::apply_style(const CSS::StyleProperties& specified_style) m_line_height = specified_style.line_height(*this); { - // FIXME: This doesn't work right for relative font-sizes - auto length = specified_style.length_or_fallback(CSS::PropertyID::FontSize, CSS::Length(10, CSS::Length::Type::Px)); - m_font_size = length.raw_value(); + constexpr int default_font_size = 10; + auto parent_font_size = parent() == nullptr ? default_font_size : parent()->font_size(); + auto length = specified_style.length_or_fallback(CSS::PropertyID::FontSize, CSS::Length(default_font_size, CSS::Length::Type::Px)); + // FIXME: em sizes return 0 here, for some reason + m_font_size = length.resolved_or_zero(*this, parent_font_size).to_px(*this); + if (m_font_size == 0) + m_font_size = default_font_size; } auto bgimage = specified_style.property(CSS::PropertyID::BackgroundImage);