diff --git a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp index c0c5ee828a..807c624b07 100644 --- a/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp +++ b/Userland/Libraries/LibWeb/CSS/StyleProperties.cpp @@ -291,10 +291,16 @@ float StyleProperties::line_height(const Layout::Node& layout_node) const Optional StyleProperties::z_index() const { - auto value = property(CSS::PropertyID::ZIndex); - if (!value.has_value()) + auto maybe_value = property(CSS::PropertyID::ZIndex); + if (!maybe_value.has_value()) return {}; - return static_cast(value.value()->to_length().raw_value()); + auto& value = maybe_value.value(); + + if (value->is_auto()) + return 0; + if (value->is_numeric()) + return static_cast(static_cast(*value).value()); + return {}; } Optional StyleProperties::opacity() const