J'essaie d'utiliser l'interpolation de chaîne sur ma variable pour référencer une autre variable:
// Set up variable and mixin
$foo-baz: 20px;
@mixin do-this($bar) {
width: $foo-#{$bar};
}
// Use mixin by passing 'baz' string as a param for use $foo-baz variable in the mixin
@include do-this('baz');
Mais quand je fais cela, j'obtiens l'erreur suivante:
Variable non définie: "$ foo-".
Sass prend-il en charge les variables de type PHP?
Ceci est en fait possible en utilisant des cartes SASS au lieu de variables. Voici un exemple rapide:
Référencer dynamiquement:
Sorties comme:
Créer dynamiquement:
Sorties comme:
la source
Chaque fois que j'ai besoin d'utiliser une valeur conditionnelle, je m'appuie sur les fonctions. Voici un exemple simple.
la source
@include do-this($foo);
? ... cependant cela aurait du sens, si la fonction faisait réellement quelque chose, mais elle ne faisait que passer ...Voici une autre option si vous travaillez avec des rails, et éventuellement dans d'autres circonstances.
Si vous ajoutez .erb à la fin de l'extension de fichier, Rails traitera erb sur le fichier avant de l'envoyer à l'interpréteur SASS. Cela vous donne une chance de faire ce que vous voulez dans Ruby.
Par exemple: (Fichier: foo.css.scss.erb)
Résultats dans le scss suivant:
Ce qui, de manière grossière, aboutit au css suivant:
la source
Je suis tombé sur le besoin de référencer une couleur de manière dynamique récemment.
J'ai un fichier _colours.scss pour chaque projet, où je définis toutes mes couleurs une fois et je les référence comme des variables partout.
Dans mon fichier _forms.scss, je voulais configurer les styles de bouton pour chaque couleur disponible. Généralement une tâche fastidieuse. Cela m'a aidé à éviter d'avoir à écrire le même code pour chaque couleur différente.
Le seul inconvénient est que vous devez lister chaque nom et valeur de couleur avant d'écrire le CSS réel.
la source
Créer une variable dynamique n'est pas possible dans SASS pour le moment, car vous allez ajouter / connecter une autre variable qui doit être analysée une fois lorsque vous exécutez la commande sass.
Dès que la commande s'exécute, elle lancera une erreur pour CSS invalide, car toutes vos variables déclarées suivront le levage.
Une fois exécuté, vous ne pouvez plus déclarer les variables à la volée
Pour savoir que j'ai compris cela, veuillez indiquer si ce qui suit est correct:
vous voulez déclarer des variables où la partie suivante (mot) est dynamique
quelque chose comme
Si c'est ce que tu veux, j'ai peur pour l'instant, ce n'est pas autorisé
la source