【问题标题】:Is there a way to use an argument in a mixin to generate a variable name within the mixin with SASS? [duplicate]有没有办法在 mixin 中使用参数在带有 SASS 的 mixin 中生成变量名? [复制]
【发布时间】:2014-02-15 01:05:06
【问题描述】:

关于这个问题,这是我正在尝试做的一个示例,但我觉得使用 SASS 插值在使用参数的 mixin 中输出变量时不起作用。

$红色:#f00; @mixin 颜色口音类($颜色){ .#{$color}-accent { 颜色:$#{$color}; } } @include color-accent-class(red);

最终我试图使重复代码低于 DRY,所以我不会重复自己所有草率的风格,我想知道是否应该使用 @function 和/或 @each 或其他一些循环动作来完成与 SASS。提前感谢您的任何指导!

$蓝色:#2a62a7; $红色:#db0042; $紫色:#5b3b9f; $橙色:#f7911a; $浅蓝色:#46aeed; $绿色:#49b842; @mixin 产品口音($颜色名称,$hexval){ .product-accent-#{$color-name} { 图像{ 边界: { 剩下: { 风格:纯色; 宽度:10px; 颜色:$hexval; } } } h3, b { 颜色:$hexval; } 。按钮 { @extend .button.#{$color-name}; } } } @include 产品口音(黑色,#000); @include 产品口音(蓝色,$蓝色); @include 产品口音(红色,$red); @include 产品口音(紫色,$紫色); @include 产品口音(橙色,$橙色); @include 产品口音(浅蓝色,$浅蓝色); @include 产品口音(绿色,$green);

【问题讨论】:

  • 非常感谢马丁。还在学习 SASS,我还没有了解列表和 nth()。我现在会发布我自己的答案,再次感谢!

标签: sass interpolation dry mixins


【解决方案1】:

非常感谢 @martin-turjak 提供的帮助。使用 SASS 列表、nth()@for 循环就可以了。如果有更清洁的方法,请加入。

$color-names:黑色、蓝色、红色、紫色、橙色、浅蓝色、绿色; $color-hexvals: #000, $blue, $red, $purple, $orange, $light-blue, $green; @for $i 从 1 到 length($color-names) { @include product-accent(nth($color-names, $i), nth($color-hexvals, $i)); }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2015-05-26
    • 2012-09-27
    • 2016-11-09
    • 1970-01-01
    • 2018-12-07
    • 2014-06-30
    相关资源
    最近更新 更多