Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用变量干燥Sass代码?_Ruby On Rails_Css_Dry_Sass - Fatal编程技术网

Ruby on rails 如何使用变量干燥Sass代码?

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

我有一个设计,使用颜色来识别网站的部分。我已经放置了一个定义了颜色变量的文件,因为它们可以更改,并且很难通过CSS文件跟踪它们

$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的一个限制,这毕竟是好的。我最终通过了这两个论点,谢谢你的建议。