我在SASS中搜索正确的方法,我不知道是否可能。
对于我的例子,我有一个带有3个子域的laravel网站。这3个子域将具有相同的站点结构,但数据和样式将不同。
在laravel中,我有一个类似的变量子域:{subdomain} .mysite.com 因此,如果我去green.mysite.com,它将加载例如green.css
我想以模块化的方式使用sass并拥有:
common.scss具有未定义变量(如颜色)的所有子域共有的所有样式
green.scss颜色变量和一些东西在这里定义
紫色主题的purple.scss变量
对于common.scss中的代码示例,我会有类似的东西:
#main-footer{
border-top: 4px solid $main;
}
在green.scss中:
/* COLORS */
$main: #8cc83d;
$second: #d38345;
这是否可以在SASS中以特定方式进行,或者我要复制粘贴包含变量的所有代码? :/
答案 0 :(得分:4)
创建一个名为_vars.scss
的sass部分,然后在main.scss
导入之前使用它。
例如:
_vars.scss
$color-main-theme: blue;
_header.scss
html {color: $color-main-theme;}
main.scss
@import "vars"
@import "header"
然后,当你的sass符合要求时,你的vars将被正确添加。作为奖励,这使得管理和更改项目之间的代码变得非常容易。
正如@Ennui所说,你需要三个单独的_vars.scss文件来完成你想要的东西(包含在这里是为了完整性,并且任何人都不会看到这些评论)。
基本上agconti在他的回答中说,但你需要3个独立的 _vars.css定义文件,以及每个导入_common.scss主要样式的三个独立的main.scss文件(每个站点一个) 每个相应颜色方案的_vars.css文件。 - Ennui 3分钟前