将动态变量发送到SASS

时间:2013-06-25 15:04:02

标签: php css sass dynamic-variables

我目前正在开展一个新项目,该项目允许用户根据喜欢的内容更改网站的外观。他们可以更改背景颜色和内容,将其保存在数据库中供以后使用,或者可以存储在cookie中。但是我一直在使用php文档来模拟样式表,这样我就可以传递像<link rel="stylesheet" type="text/css" href="main.php?bgColor=#444"这样的变量作为示例。这样我就可以让css动态而不是过多依赖javascript。
然而有些朋友提到使用SASS,但我不知道它是否适合我的项目,因为我对罗盘框架知之甚少。如何将动态变量传递给此.sass或.scss文件?你只是做一个@import "php-variables";语句并包含一个php文件吗?或者你可以像我用php一样发送动态变量吗?
而且,使用PHP而不是SASS有什么好处,反之亦然?

2 个答案:

答案 0 :(得分:4)

这里似乎基本缺乏理解,所以我会提供一个简短的答案和一个较长的答案。

您无法向Sass发送动态变量。可能有一些用于PHP的端口可以实现,但只使用Sass,这是不可行的。

您可能希望熟悉what exactly Sass is以及它如何适合您的工具包。听起来你正在使用PHP,所以我想你有PHP呈现HTML模板/做DB魔术,可能是一些JavaScript来做客户端脚本,你会有CSS(普通,香草CSS)样式元素在您的网站上。

Sass / SCSS(以下简称Sass)不会替换CSS(你永远不会看到<link type="text/sass">),它只是为编写样式提供了不同的语法,后来编译成CSS。

Sass通常在将资产发送到生产之前编译为CSS ,在用户请求时不会生成。您的Sass文件与HTML文档之间没有真正的连接,因此您无法将任何变量传递给Sass文件。

答案 1 :(得分:2)

@imjared描述了为什么SASS不是一个合适的解决方案,我会尝试建议一个好的解决方案。

您从PHP脚本提供动态CSS的解决方案并不好,因为它不允许缓存。每次刷新页面或链接时,每个用户都必须下载CSS文件。

您需要做的是生成CSS文件,将它们保存为实际文件并提供动态链接。

文件的名称可能等于相应用户的名称(请格外小心清理文件名),然后每次用户更新样式时都会重写CSS文件。