interprète pas une variable avec un nom composé d'une variable

Pas trouvé plus compliqué/simple

a marqué ce sujet comme résolu.

Bonjour! :)

J'ai un petit problème avec Sass, et c'est pour cela que je viens vous demander de l'aider, s'il vous plaît :) .

Je vais commencer par la situation:

  • j'ai plusieurs variables contenants des couleurs de différents éléments ($p1_color: #2c3e50 par exemple, avec le 1 qui incrémente avec le nombre d'objets).
  • j'ai cette boucle: (où $parts_number est le nombre d'éléments que j'ai)
1
2
3
4
5
6
7
$p: '$p'
@for $i from 1 through $parts_number
    #p#{$i}
        $color: #{$p}#{$i}_color

        $tmp: '#{$p}#{$i}_color'
        background: #{$tmp}

ce qui me sort:

1
2
3
#p1 {
    background: $p1_color
}

le problème, c'est que j'aimerai que Sass interprète cette variable.

Quelqu'un à une piste ? Ou un autre moyen de penser, qui rendrait la chose possible ?

Merci!

Salut,

Je ne connais pas SASS, mais je pense que tu t'y prends mal, tu devrais utiliser une List ou une Map pour gérer tes indexes de couleurs (genre couleur[1], couleur[2], etc), plutôt que de vouloir interpréter en SASS le résultat d'une variable SASS (en php ça serait $$variable, mais c'est déjà horrible en PHP…)

Regardes un peu par là : http://pioupioum.fr/developpement/sass-3-3-maps.html

Les List ont l'air d'être des tableaux à indexes numériques et les Maps des tableaux associatifs (un peu comme en python en fait)

Merci! :)

C'est vrai que je ne suis pas l'actualité Sass, je devrait, on dirait. ^^

Par contre, il y a quelques différences (avec les 'normes' en programmation):

lists:

  • on utilise la fonction nth($list, $index) pour avoir un élément du tableau. (même pas de $list[$index] :( )
  • l'index commence à 1 ! :|

maps:

  • on utilise map-get($map, $key) pour avoir la valeur de $key (pas, non plus, de $map[key] :( )

J'ai, juste un dernier problème, qui est lui, lié à l'écriture de lists/maps: je n'arrive pas à les écrire sur plusieurs lignes, par exemple:

1
2
3
4
5
$map(
    width: 10px,
    height: 10px,
    background: grey
)

ne veut pas être compiler, erreur:

1
2
3
F:\Dropbox\www\classeur\style.sass
Syntax error: Illegal nesting: Nothing may be nested beneath variable declarations.
        on line 2 of F:\Dropbox\www\classeur\style.sass

Je comprends bien ce qu'il dit, mais sa ne m'encourage pas à utiliser des maps pour des fichiers de configurations par exemple. Aurais-tu une piste que je pourrais creuser ? :)

J'ai bien cherché, mais c'est difficile de trouver de la documentation là dessus, vu que SCSS est de plus en plus utilisé. J'ai même essayé de chercher sur GitHub des projets utilisant des fichiers .sass, mais même problème: tout ce que je vois utilise SCSS.

Merci!

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte