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

Pas trouvé plus compliqué/simple

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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!

Édité par tleb

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Perlis

+0 -0

Cette réponse a aidé l'auteur du sujet

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)

+0 -0
Auteur du sujet

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!

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Perlis

+0 -0
Auteur du sujet

Ceci, c'est simplement un exercice.

Le fichier .sass est ici.

It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical? – Perlis

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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