diff --git a/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp b/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp index 7a7a5fa994..3154acc55f 100644 --- a/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp +++ b/Libraries/LibWeb/DOM/HTMLTableCellElement.cpp @@ -55,7 +55,7 @@ void HTMLTableCellElement::apply_presentational_hints(StyleProperties& style) co return; } if (name == HTML::AttributeNames::width) { - if (auto parsed_value = parse_css_value(CSS::ParsingContext(document()), value)) + if (auto parsed_value = parse_html_length(document(), value)) style.set_property(CSS::PropertyID::Width, parsed_value.release_nonnull()); return; } diff --git a/Libraries/LibWeb/DOM/HTMLTableElement.cpp b/Libraries/LibWeb/DOM/HTMLTableElement.cpp index 363001b7db..e337f3eda5 100644 --- a/Libraries/LibWeb/DOM/HTMLTableElement.cpp +++ b/Libraries/LibWeb/DOM/HTMLTableElement.cpp @@ -42,7 +42,7 @@ void HTMLTableElement::apply_presentational_hints(StyleProperties& style) const { for_each_attribute([&](auto& name, auto& value) { if (name == HTML::AttributeNames::width) { - if (auto parsed_value = parse_css_value(CSS::ParsingContext(document()), value)) + if (auto parsed_value = parse_html_length(document(), value)) style.set_property(CSS::PropertyID::Width, parsed_value.release_nonnull()); return; } diff --git a/Libraries/LibWeb/Parser/CSSParser.cpp b/Libraries/LibWeb/Parser/CSSParser.cpp index 9bc89980b0..3138190b70 100644 --- a/Libraries/LibWeb/Parser/CSSParser.cpp +++ b/Libraries/LibWeb/Parser/CSSParser.cpp @@ -928,4 +928,12 @@ RefPtr parse_css_declaration(const CSS::ParsingContext& contex return parser.parse_standalone_declaration(); } +RefPtr parse_html_length(const Document& document, const StringView& string) +{ + auto integer = string.to_int(); + if (integer.has_value()) + return LengthStyleValue::create(Length::make_px(integer.value())); + return parse_css_value(CSS::ParsingContext(document), string); +} + } diff --git a/Libraries/LibWeb/Parser/CSSParser.h b/Libraries/LibWeb/Parser/CSSParser.h index dc38bb7c74..1426f72306 100644 --- a/Libraries/LibWeb/Parser/CSSParser.h +++ b/Libraries/LibWeb/Parser/CSSParser.h @@ -53,4 +53,6 @@ RefPtr parse_line_width(const CSS::ParsingContext&, const Stri RefPtr parse_color(const CSS::ParsingContext&, const StringView&); RefPtr parse_line_style(const CSS::ParsingContext&, const StringView&); +RefPtr parse_html_length(const Document&, const StringView&); + }