L'envoi de variables dynamiques SASS
Je suis actuellement en train de travailler à un nouveau projet, qui permet aux utilisateurs de modifier l'apparence du site web de base sur leurs goûts. Ils pourraient changer les couleurs de fond et d'autres choses, qui sont enregistrés sur une base de données pour les utiliser plus tard, ou ils pourraient être stockées dans un cookie. Cependant j'ai été en utilisant un document php pour émuler une feuille de style, de sorte que je pouvais passer des variables comme <link type="text/css" href="main.php?bgColor=#444"
comme un exemple. De cette façon, je pouvais juste faire le css dynamique et de ne pas trop compter sur le javascript.
Cependant, certains amie mentionné à l'aide de SASS, mais je ne sais pas vraiment si c'est adapté à mon projet car je ne sais pas beaucoup au sujet de la boussole cadre. Comment voulez-vous passer des variables dynamiques pour cela .sass ou .scss fichier? Ne vous venez de faire un @import "php-variables";
déclaration et d'inclure un fichier php? ou pouvez-vous envoyer des variables dynamiques comme je l'ai fait avec php?
Et aussi, quels sont les avantages de l'utilisation de php sur SASS, ou vice-versa?
sass !== compass
. Avec SASS vous pouvez définir vos variables dans votre feuille de style et, comme en php, vous pouvez les utiliser partout où vous en avez besoin.- mais comment voulez-vous obtenir cookie variables? ou encore get ou post variables?
- Sass ne peut pas importer le code PHP (pourquoi vous vous attendriez à ce qu'il le pourrait?). Sass n'est pas dynamique dans la façon dont PHP est dynamique: le Sass code est compilé dans un ordinaire fichier CSS, il n'est pas prévu pour être recompilé à la volée. Il n'a pas de notion d'état (aucun obtenir/demande/post/cookie variables).
- Je sais que c'est pré-compilé, mais après la lecture de cette question stackoverflow.com/questions/8985109/..., ils ont mentionné à faire quelque chose de similaire, cependant ils utilisent phpsass et je me demandais juste si il pourrait être réalisé à l'aide seulement de sass
Vous devez vous connecter pour publier un commentaire.
Il semble y avoir un manque fondamental de compréhension ici, je vais donc donner une réponse courte et une plus longue.
court
Vous ne pouvez pas envoyer des variables dynamiques Sass. Il y a peut être un port de pour PHP qui le rend possible, mais en utilisant simplement Sass, ce n'est pas faisable.
plus
Vous pouvez vous familiariser avec qu'est-ce exactement le Sass est et comment il s'adapte à votre boîte à outils. Il semble que vous êtes à l'aide de PHP donc j'imagine que vous auriez PHP rendu HTML templates/faire de la DB de la magie, peut-être une pincée de JavaScript pour faire le script côté client, et vous aurez CSS (nature, vanille CSS) des éléments de style sur votre site.
Sass/SCSS (ci-après, Sass) ne remplace pas les CSS (vous ne verrez pas
<link type="text/sass">
), il fournit simplement une syntaxe différente pour les styles d'écriture qui est ensuite compilé en CSS.Sass est généralement compilées pour CSS avant vous envoyer vos actifs pour la production, il n'est pas généré lorsqu'un utilisateur en fait la demande. Il n'y a pas de véritable lien entre vos fichiers Sass et votre document HTML de sorte que vous ne seriez pas en mesure de passer des variables à votre Sass fichiers.
@imjared décrit pourquoi SASS n'est pas une solution et je vais essayer de proposer ce qui un bon peut être.
Votre solution de servir CSS dynamique à partir d'un script PHP n'est pas bonne, car elle ne permet pas la mise en cache. Chaque utilisateur devra télécharger le fichier CSS à chaque fois qu'il actualise la page ou un lien.
Ce que vous devez faire à la place est de générer le CSS fichiers, de les enregistrer en tant que fichiers réels et de fournir des liens dynamiques vers eux.
Le nom du fichier peut être égal au nom de l'utilisateur correspondant (s'il vous plaît être très prudent pour désinfecter les noms de fichiers), puis un fichier CSS sera réécrit à chaque fois qu'un utilisateur met à jour son les styles.