Maison > interface Web > tutoriel CSS > Pourquoi les variables CSS ne peuvent-elles pas être utilisées directement dans la fonction `url()` ?

Pourquoi les variables CSS ne peuvent-elles pas être utilisées directement dans la fonction `url()` ?

DDD
Libérer: 2024-12-11 19:31:13
original
502 Les gens l'ont consulté

Why Can't CSS Variables Be Used Directly Within the `url()` Function?

Interpolation de variables CSS avec url()

Les propriétés personnalisées (variables CSS) offrent un moyen efficace de stocker et de réutiliser les valeurs de style. Cependant, les utilisateurs ont rencontré des difficultés lorsqu'ils ont tenté d'interpoler ces variables dans la fonction url().

Pourquoi les variables CSS ne peuvent-elles pas être interpolées avec url() ?

Malgré les capacités d'interpolation des fonctions CSS comme rgba(), url() présente une exception notable. Le problème se pose car l'analyseur interprète url(var(--url)) comme un seul jeton url() non valide, plutôt que comme un appel de fonction. Cela empêche l'évaluation de l'expression var() et conduit à une déclaration d'arrière-plan non valide.

Raisons héritées

L'incapacité d'interpoler les variables dans url() peut être attribuée à des raisons héritées. L'analyse du jeton url() est restée intacte pour maintenir une compatibilité descendante avec les versions CSS antérieures.

Solutions alternatives

Bien que l'interpolation de variables ne soit pas possible avec url(), il existe des approches alternatives pour obtenir un effet similaire :

  1. Définir l'expression d'URL dans Custom Propriété : Au lieu d'interpoler des variables dans la fonction url(), spécifiez l'URL entière en tant que propriété personnalisée. Par exemple :
:root {
  --url: url("https://download.unsplash.com/photo-1420708392410-3c593b80d416");
}

body {
  background: var(--url);
}
Copier après la connexion
  1. Utiliser JavaScript : Avec JavaScript, vous pouvez créer dynamiquement l'expression url() à partir de variables CSS et l'appliquer à l'aide de la propriété background.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal