1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 14:44:57 +00:00

LibHTML: Parse the :link and :hover CSS pseudo-classes

We don't actually do anything with these yet, but now the values will
be there for the selector engine to look at when it feels ready. :^)
This commit is contained in:
Andreas Kling 2019-10-13 21:54:26 +02:00
parent e4015ab7cc
commit 605a225b53
2 changed files with 22 additions and 4 deletions

View file

@ -197,7 +197,7 @@ public:
buffer.append(consume_one());
PARSE_ASSERT(!buffer.is_null());
Selector::Component component { type, relation, String::copy(buffer) };
Selector::Component component { type, Selector::Component::PseudoClass::None, relation, String::copy(buffer) };
buffer.clear();
if (peek() == '[') {
@ -209,12 +209,23 @@ public:
}
if (peek() == ':') {
// FIXME: Implement pseudo stuff.
// FIXME: Implement pseudo elements.
[[maybe_unused]] bool is_pseudo_element = false;
consume_one();
if (peek() == ':')
if (peek() == ':') {
is_pseudo_element = true;
consume_one();
}
while (is_valid_selector_char(peek()))
consume_one();
buffer.append(consume_one());
auto pseudo_name = String::copy(buffer);
buffer.clear();
if (pseudo_name == "link")
component.pseudo_class = Selector::Component::PseudoClass::Link;
else if (pseudo_name == "hover")
component.pseudo_class = Selector::Component::PseudoClass::Hover;
}
return component;