Dynamique Sass Variables
Est-il possible que je peux configurer ma couleur variables en fonction de la classe est sur l'élément html? Ou de toute autre manière à atteindre ce même objectif?
html {
&.sunrise {
$accent: #37CCBD;
$base: #3E4653;
$flat: #eceef1;
}
&.moonlight {
$accent: #18c;
$base: #2a2a2a;
$flat: #f0f0f0;
}
}
- Vous pouvez utiliser de MOINS, ce qui peut être mis en place pour compiler côté client et fonctionne de manière similaire. Cela peut avoir des implications sur les performances, cependant. lesscss.org
- ce que vous avez fait pour résoudre ce problème? Je suis coincé avec la même question.
Vous devez vous connecter pour publier un commentaire.
C'est la base de la thématisation. Vous souhaitez utiliser un mixin ou d'inclure de multiples thèmes dans un seul fichier CSS. Voici comment vous pouvez aller à ce sujet à l'aide comprend:
_theme.scss
principal.scss
Vous pourriez tout aussi bien faire un mixin qui prend 3 couleurs comme arguments à utiliser à la place de l'include:
Malheureusement, Sass/Scss fichiers doivent obtenir compilés dans Css fichiers, afin d'être soutenu dans votre navigateur web.
Depuis Css fichiers ne prennent pas en charge les variables, vous pouvez uniquement définir des variables à valeur dans le Scss modèle, parce que le Sass compilateur remplacera le var. (dans chaque position, le var. a été utilisé), avec la valeur donnée.
Cela signifie qu'il n'aide pas à changer la couleur de la variable, en fonction de ce que la classe est incluse dans le Html, car le Css fichier ne contiennent pas de variables.
La seule façon pour vous de faire une telle chose, est par:
Si vous souhaitez utiliser le JavaScript, vous pouvez le faire:
Vous aurez besoin d'un élément HTML avec un Id et une Class (celui qui décide, à ce que la couleur à utiliser).
...
Suivante, vous devez ajouter un peu de JavaSript
var CurrentColor = document.getElementById("Cible").className;
si (CurrentColor == "sunrise")
{
document.exampleTagg.style.exampleProperty = "#37CCBD";
}
else if (CurrentColor == "clair de lune")
{
document.exampleTagg.style.exampleProperty = "#18c";
}
(la première ligne déclare une variable qui contient la valeur de notre exampleTagg élément (l'un avec la "Cible" id), alors la si la déclaration de trouver le nom de notre classe (lever du soleil ou de la lune) et la dernière, nous allons changer l'arrière plan de notre exampleTagg à la couleur que nous aimons)
Utiliser cet exemple pour vos propres besoins, remplacer le exampleTagg avec certains réel tagg et modifier le exampleProperty à un Css valide de propriété.
Avis, que vous n'aurez pas besoin Scss pour cette tâche (u pouvez toujours l'utiliser), parce que JavaScript aura accès à votre compilé le fichier Css.