Ruby on rails 如何使用变量干燥Sass代码?
我有一个设计,使用颜色来识别网站的部分。我已经放置了一个定义了颜色变量的文件,因为它们可以更改,并且很难通过CSS文件跟踪它们Ruby on rails 如何使用变量干燥Sass代码?,ruby-on-rails,css,dry,sass,Ruby On Rails,Css,Dry,Sass,我有一个设计,使用颜色来识别网站的部分。我已经放置了一个定义了颜色变量的文件,因为它们可以更改,并且很难通过CSS文件跟踪它们 $people: #D50000; $galleries: #D500AA; $projects: #D5BA00; //etc... 我的类的名称与变量的名称匹配。例如,导航菜单类似于: <ul> <li class="people">People</div> <li class="galleries">Gal
$people: #D50000;
$galleries: #D500AA;
$projects: #D5BA00;
//etc...
我的类的名称与变量的名称匹配。例如,导航菜单类似于:
<ul>
<li class="people">People</div>
<li class="galleries">Galleries</div>
<li class="projects">Projects</div>
<!-- etc... ->
</ul>
@mixin menu-states($resource) {
li.#{$resource} a { // This works
border-left: 7px solid $#{$resource}; // But this doesn't...
}
}
我想把它晾干。我尝试过使用mixin,但我不知道如何告诉SASS查找以我传递的参数命名的变量(变量间接寻址)。我有点像:
<ul>
<li class="people">People</div>
<li class="galleries">Galleries</div>
<li class="projects">Projects</div>
<!-- etc... ->
</ul>
@mixin menu-states($resource) {
li.#{$resource} a { // This works
border-left: 7px solid $#{$resource}; // But this doesn't...
}
}
有人对如何烘干这个有什么建议吗?谢谢。您不能这样做,但是您可以传入两个变量,一个用于类,另一个用于混合 这段代码对我有用
@mixin test($resource: "red"){
$updated: unquote($resource);
li.#{$updated} a{
border-left: 7px solid $updated;
}
}
我想避免这种情况,但似乎这是Sass的一个限制,这毕竟是好的。我最终通过了这两个论点,谢谢你的建议。