Custom properties (CSS variables) provide an effective way to store and reuse styling values. However, users have encountered challenges when attempting to interpolate these variables within the url() function.
Why Can't CSS Variables Be Interpolated with url()?
Despite the interpolation capabilities of CSS functions like rgba(), url() presents a notable exception. The issue arises because the parser interprets url(var(--url)) as a single invalid url() token, rather than a function call. This prevents the var() expression from being evaluated and leads to an invalid background declaration.
Legacy Reasons
The inability to interpolate variables in url() can be attributed to legacy reasons. The url() token's parsing has remained untouched to maintain backward compatibility with earlier CSS versions.
Alternative Solutions
Although variable interpolation is not possible with url(), there are alternative approaches to achieve a similar effect:
:root { --url: url("https://download.unsplash.com/photo-1420708392410-3c593b80d416"); } body { background: var(--url); }
The above is the detailed content of Why Can't CSS Variables Be Used Directly Within the `url()` Function?. For more information, please follow other related articles on the PHP Chinese website!