mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-21 03:55:24 +00:00
LibHTML: Implement basic style inheritance
This commit is contained in:
parent
3be897a3d5
commit
841ae44392
Notes:
sideshowbarker
2024-07-19 11:56:32 +09:00
Author: https://github.com/bugaevc Commit: https://github.com/SerenityOS/serenity/commit/841ae443923 Pull-request: https://github.com/SerenityOS/serenity/pull/609 Reviewed-by: https://github.com/awesomekling ✅
2 changed files with 11 additions and 2 deletions
|
@ -52,9 +52,18 @@ NonnullRefPtrVector<StyleRule> 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()) {
|
||||
|
|
|
@ -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<StyleRule> collect_matching_rules(const Element&) const;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue