gpt4 book ai didi

sass - Sass 中具有可变参数列表的一个属性的多个值

转载 作者:行者123 更新时间:2023-12-04 15:01:36 26 4
gpt4 key购买 nike

我希望有一个像 +stacktextshadow(blue, red, green) 这样的 mixin吐了text-shadow: 1px 1px 0 blue, 2px 2px 0 red, 3px 3px 0 green;
目前这是我所拥有的:

=stacktextshadow($shadows...)
@for $i from 1 through length($shadows)
$shadow1: append(1px 1px 0, nth($shadows,1))
$shadow2: append(2px 2px 0, nth($shadows,2))
$shadow3: append(3px 3px 0, nth($shadows,3))
text-shadow: $shadow1, $shadow2, $shadow3

h1
+stacktextshadow(blue, red, green)

这给了我:
h1 {
text-shadow: 1px 1px 0 blue, 2px 2px 0 red, 3px 3px 0 green;
text-shadow: 1px 1px 0 blue, 2px 2px 0 red, 3px 3px 0 green;
text-shadow: 1px 1px 0 blue, 2px 2px 0 red, 3px 3px 0 green; }

三倍。我知道为什么,因为它正在运行 text-shadow @for中的3次属性声明环形。我希望它只做一次。然而,当我把 text-shadow在 foo 循环之外,它无法访问 $shadow1 , $shadow2 , 等等。

另外,我不想重复以下内容: $shadow($i): append($i*1px $i*1px 0, nth($shadows,$i)) (这显然不起作用)所以这一切都是动态完成的——我是否将一个参数传递给混入,或者 20。

最佳答案

您可以在循环外创建一个变量来“收集”阴影值,然后在您的 text-shadow 中使用该变量。属性(property)。例子:

=stacktextshadow($shadows...)
$all: ()
@for $i from 1 through length($shadows)
$all: append($all, append($i*1px $i*1px 0, nth($shadows, $i)), comma)

text-shadow: $all

h1
+stacktextshadow(blue, red, green)

输出:
h1 {
text-shadow: 1px 1px 0 blue, 2px 2px 0 red, 3px 3px 0 green; }

关于sass - Sass 中具有可变参数列表的一个属性的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12937503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com