1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 00:57:43 +00:00

LibWeb: Implement the :is() selector

This lets us finally get rid of a FIXME in the default style sheet. :^)
This commit is contained in:
Sam Atkins 2022-03-17 15:28:42 +00:00 committed by Andreas Kling
parent 88d218721b
commit c148ed50bb
6 changed files with 37 additions and 21 deletions

View file

@ -430,12 +430,16 @@ void dump_selector(StringBuilder& builder, CSS::Selector const& selector)
case CSS::Selector::SimpleSelector::PseudoClass::Type::Not:
pseudo_class_description = "Not";
break;
case CSS::Selector::SimpleSelector::PseudoClass::Type::Is:
pseudo_class_description = "Is";
break;
}
builder.appendff(" pseudo_class={}", pseudo_class_description);
if (pseudo_class.type == CSS::Selector::SimpleSelector::PseudoClass::Type::Not) {
if (pseudo_class.type == CSS::Selector::SimpleSelector::PseudoClass::Type::Not
|| pseudo_class.type == CSS::Selector::SimpleSelector::PseudoClass::Type::Is) {
builder.append("([");
for (auto& selector : pseudo_class.not_selector)
for (auto& selector : pseudo_class.argument_selector_list)
dump_selector(builder, selector);
builder.append("])");
} else if ((pseudo_class.type == CSS::Selector::SimpleSelector::PseudoClass::Type::NthChild)