diff --git a/Libraries/LibHTML/CSS/StyleResolver.cpp b/Libraries/LibHTML/CSS/StyleResolver.cpp index 81dd368c82..d18c5cde74 100644 --- a/Libraries/LibHTML/CSS/StyleResolver.cpp +++ b/Libraries/LibHTML/CSS/StyleResolver.cpp @@ -52,9 +52,18 @@ NonnullRefPtrVector StyleResolver::collect_matching_rules(const Eleme return matching_rules; } -StyleProperties StyleResolver::resolve_style(const Element& element) +StyleProperties StyleResolver::resolve_style(const Element& element, const StyleProperties* parent_properties) const { StyleProperties style_properties; + + if (parent_properties) { + parent_properties->for_each_property([&](const StringView& name, auto& value) { + // TODO: proper inheritance + if (name.starts_with("font") || name == "white-space") + style_properties.set_property(name, value); + }); + } + auto matching_rules = collect_matching_rules(element); for (auto& rule : matching_rules) { for (auto& declaration : rule.declarations()) { diff --git a/Libraries/LibHTML/CSS/StyleResolver.h b/Libraries/LibHTML/CSS/StyleResolver.h index 1b77e8f90d..9f814ace07 100644 --- a/Libraries/LibHTML/CSS/StyleResolver.h +++ b/Libraries/LibHTML/CSS/StyleResolver.h @@ -18,7 +18,7 @@ public: Document& document() { return m_document; } const Document& document() const { return m_document; } - StyleProperties resolve_style(const Element&); + StyleProperties resolve_style(const Element&, const StyleProperties* parent_properties) const; NonnullRefPtrVector collect_matching_rules(const Element&) const;