diff --git a/Libraries/LibHTML/Parser/CSSParser.cpp b/Libraries/LibHTML/Parser/CSSParser.cpp
index 518ac990cf..4e821322c8 100644
--- a/Libraries/LibHTML/Parser/CSSParser.cpp
+++ b/Libraries/LibHTML/Parser/CSSParser.cpp
@@ -86,12 +86,16 @@ NonnullRefPtr parse_css(const String& css)
auto parse_selector = [&] {
consume_whitespace();
Selector::Component::Type type;
- if (peek() == '.')
+
+ if (peek() == '.') {
type = Selector::Component::Type::Class;
- else if (peek() == '#')
+ consume_one();
+ } else if (peek() == '#') {
type = Selector::Component::Type::Id;
- else
+ consume_one();
+ } else {
type = Selector::Component::Type::TagName;
+ }
while (is_valid_selector_char(peek()))
buffer.append(consume_one());
@@ -160,6 +164,7 @@ NonnullRefPtr parse_css(const String& css)
parse_declarations();
consume_specific('}');
rules.append(StyleRule::create(move(current_rule.selectors), move(current_rule.declarations)));
+ consume_whitespace();
};
while (index < css.length()) {