diff --git a/Tests/LibWeb/Text/expected/css/attr-serialization.txt b/Tests/LibWeb/Text/expected/css/attr-serialization.txt
new file mode 100644
index 0000000000..64022fac20
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/css/attr-serialization.txt
@@ -0,0 +1,8 @@
+attr(foo)
+attr( foo )
+attr(foo, "fallback")
+attr( foo , "fallback" )
+attr(foo string)
+attr( foo string )
+attr(foo string, "fallback")
+attr( foo string , "fallback" )
diff --git a/Tests/LibWeb/Text/input/css/attr-serialization.html b/Tests/LibWeb/Text/input/css/attr-serialization.html
new file mode 100644
index 0000000000..f2c77b83be
--- /dev/null
+++ b/Tests/LibWeb/Text/input/css/attr-serialization.html
@@ -0,0 +1,22 @@
+
+
diff --git a/Userland/Libraries/LibWeb/CSS/Parser/Function.cpp b/Userland/Libraries/LibWeb/CSS/Parser/Function.cpp
index 5f39f8b3be..8705bb6923 100644
--- a/Userland/Libraries/LibWeb/CSS/Parser/Function.cpp
+++ b/Userland/Libraries/LibWeb/CSS/Parser/Function.cpp
@@ -24,7 +24,8 @@ String Function::to_string() const
serialize_an_identifier(builder, m_name);
builder.append('(');
- builder.join(' ', m_values);
+ for (auto& item : m_values)
+ builder.append(item.to_string());
builder.append(')');
return MUST(builder.to_string());