Je suis nouveau dans Sass et je lis différentes méthodes d’utilisation des variables. Ce principe que je tente d’appliquer concerne uniquement les couleurs. Certaines des solutions que j’ai trouvées ressemblaient à ceci (map-get) :
$colors: (
lighestGray: #F8F8FA,
lightGray: #A5ACBA,
light: #FFFFFF,
dark: #000000,
link: #428bca,
linkHover: #555,
navBlue: #7AC243,
navGreen: #009CDC,
);
Ensuite, vous l'utilisez sur votre classe comme ceci:
.my-class {
color: map-get($colors, dark);
}
Et l'autre moyen est d'utiliser:
$color-black: #000000;
Ensuite, vous l'utilisez comme ceci:
.my-class {
color: $color-black;
}
Ma question est, quelle option est la meilleure? ou map-get
function a un autre objectif?, Sass a un modèle pour cela ou cela dépend de chaque développeur Web?.
Merci de m'avoir aidé!.
Cordialement.
La différence est que lorsque vous utilisez les variables $ map, elles sont mieux conçues pour être utilisées via des itérations ou à l'aide de @each.
Cas d'échantillon:
SCSS
// Map variable
$icons: (
facebook : "\f0c4",
Twitter : "\f0c5",
googleplus : "\f0c6",
youtube : "\f0c7"
);
// Mixin doing the magic
@mixin icons-list($map) {
@each $icon-name, $icon in $map {
@if not map-has-key($map, $icon-name) {
@warn "'#{$icon-name}' is not a valid icon name";
}
@else {
&--#{$icon-name}::before {
content: $icon;
}
}
}
}
// How to use it
.social-link {
background-color: grey;
@include icons-list($icons);
}
CSS
// Sortie CSS
.social-link {
background-color: grey;
}
.social-link--facebook::before {
content: "";
}
.social-link--Twitter::before {
content: "";
}
.social-link--googleplus::before {
content: "";
}
.social-link--youtube::before {
content: "";
}
Ce code provient de ma propre réponse dans le post suivant mais la réponse est une utilisation de cas de @each :)
J'espère que cela vous aidera
map-get est utilisé pour obtenir la valeur CSS d'un plus grand nombre d'objets.
supposons que vous ayez $ param où vous avez défini plusieurs propriétés et que vous voulez maintenant assigner. vous pouvez l'utiliser de différentes manières -
color: map-get($params, "color");
Où d'autre variable simple ne contient qu'une seule valeur
map-get pour obtenir la valeur css d'un objet contenant plusieurs valeurs alors que variable pour une seule valeur