LibWeb/Layout: Only apply ::before/::after creation rules to them

This commit is contained in:
Sam Atkins 2025-06-18 09:44:47 +01:00
commit 9c656dd7d1
Notes: github-actions[bot] 2025-06-19 11:36:51 +00:00

View file

@ -195,9 +195,10 @@ void TreeBuilder::create_pseudo_element_if_needed(DOM::Element& element, CSS::Ps
auto pseudo_element_display = pseudo_element_style->display();
// ::before and ::after only exist if they have content. `content: normal` computes to `none` for them.
// We also don't create them if they are `display: none`.
if (pseudo_element_display.is_none()
if (first_is_one_of(pseudo_element, CSS::PseudoElement::Before, CSS::PseudoElement::After)
&& (pseudo_element_display.is_none()
|| pseudo_element_content.type == CSS::ContentData::Type::Normal
|| pseudo_element_content.type == CSS::ContentData::Type::None)
|| pseudo_element_content.type == CSS::ContentData::Type::None))
return;
auto pseudo_element_node = DOM::Element::create_layout_node_for_display_type(document, pseudo_element_display, *pseudo_element_style, nullptr);