Maison >interface Web >tutoriel CSS >Les variables CSS peuvent-elles être utilisées dans la fonction `url()` ?

Les variables CSS peuvent-elles être utilisées dans la fonction `url()` ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-22 09:04:44491parcourir

Can CSS Variables Be Used Inside the `url()` Function?

Les variables CSS peuvent-elles être interpolées avec url() ?

Malgré l'utilisation généralisée des variables CSS, il reste une limitation en matière d'interpolation dans la fonction url(). Cette limitation découle de la nature héritée du jeton url().

Dans le CSS moderne, l'interpolation des propriétés personnalisées est une fonctionnalité fondamentale. Il permet d'insérer des valeurs dynamiques dans diverses fonctions, telles que rgba(). Cependant, la fonction url() constitue une exception à cette règle.

Lors de l'utilisation de url(var(--url)), l'analyseur l'interprète comme un seul jeton url(), et non comme une combinaison de un jeton de fonction url() et une expression variable. Par conséquent, la variable est traitée comme une URL elle-même, ce qui rend l'interpolation invalide.

Pour contourner ce problème, évitez de construire des jetons d'URL à partir de plusieurs expressions de variable dans url(). Cela inclut des approches telles que --uo: url(; --uc: ); et arrière-plan : var(--uo) var(--url) var(--uc);. Les propriétés personnalisées ne peuvent pas contenir de délimiteurs de chaîne sans correspondance ni de parties de jetons url().

Pour les arrière-plans, la solution consiste à spécifier l'expression url() complète dans la propriété personnalisée et à la remplacer directement :

:root {
  --url: url("https://download.unsplash.com/photo-1420708392410-3c593b80d416");
}

body {
  background: var(--url);
}

Alternativement, JavaScript peut être utilisé pour effectuer l'interpolation au lieu de var().

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!

Déclaration:
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