Bonjour,
MisterOccan, tu as raison je souhaites utiliser ta solution sauf qu'il faut faire quelques petites adaptation pour le margin qui ne se comporte par tout a fait comme le padding.
Alors je pensais avoir trouver la solution, mais j'ai encore quelques petites petouilles... Le truc c'est que je pense savoir comment les solutionnées sauf qu'il faut que j'arrive a faire exécuter un formule a compass et je n'y arrive pas...
Je m'explique, je suis donc partie sur ta construction avec l'identification des colonnes ; en gros j'informe la navigateur pour lui dire si c'est la première colonne, la dernière ou encore une au centre. Neanmoins en fonction de ces information et du nombre de colonnes, je me retrouve avec deux variables qui impactent sur le margin de mes bloques. D'ou le besoin d'une formule pour calculer les margin.
Ci-dessous le code des colonnes centrales a modifiées:
@for $nc from 1 through 6 {
@for $t from 1 through $nbcolonnes {
.c#{$t}-#{$nc} { width: $t / $nbcolonnes * (100% - $nc * $marg);
margin: 0 (#{$nc} * 2) / #{$nc} + 1);
@extend %c;
}
}
}
Le probleme est donc sur la ligne de margin :
margin: 0 (#{$nc} * 2) / #{$nc} + 1);
qui sort ainsi apres compilation lorsque $nc=4:
margin: 0 4 * 2 / 4 + 1;
Alors que je souhaiterais avoir
margin: 0 1.5%;
EDIT :
En bidouillant un peu j'arrive a avoir mon calcule se faire, mais la valeur de sortie n'est pas en % et je ne sais pas comment la mettre... Ci dessous la bidouille, mais alors pour mettre la valeur de sortie en % je dois dire que je sèche un peu...
@for $nc from 1 through 6 {
@for $t from 1 through $nbcolonnes {
.c#{$t}-#{$nc} { width: $t / $nbcolonnes * (100% - $nc * $marg);
$e : $nc * 2;
$p : $nc + 1;
margin-left: $e / $p;
margin-right: $e / $p;
@extend %c;
}
}
}
Ce qui donne avec la valeur 4
margin-left : 1.6 ;
margin-right :1.6 ;
Il faut que j'arrive a ajouter un % derrière et c'est gagne.