我引用了另一个主题here,但无济于事。
基本上我试图将文本阴影应用于按钮的一半长度,我之前使用静态值,但是想要将其更改为动态调整到按钮的大小,并选择将阴影置于其上图标的左/右侧。
$size: 80px;
$color-primary: ######;
@mixin shadow($clr: $color-primary, $perc: 15%, $dir: 'right') {
$all: ();
@for $i from 1 through strip-units($size/2) {
$shadow: "#{$i}px #{$i}px darken($clr, unquote($perc))";
@if $dir == 'left'{
$all: append($all, append(unquote(-$shadow), comma))
} @else {
$all: append($all, append(unquote($shadow), comma))
}
}
text-shadow: $all;
}
button {
background-color: $color-primary;
color: $color-secondary;
display: inline-block;
font-size: ($size/1.5);
vertical-align:middle;
width: $size;
height: $size;
line-height: ($size + 4px)
@include shadow($color-primary);
}
有人可以帮我搞混合吗?我觉得我很亲密。
编辑:
对不起,我应该澄清一下;似乎没有出现任何错误,它只是不会产生阴影。
调用mixin时的CSS输出应该如下所示:
text-shadow: 1px 1px darken(######, 15%),
2px 2x darken(######, 15%), [etc.]
如果为$ dir选择'left',则为第一个负值
没有错误,我只是检查(使用分隔符unquote(','))并编译为:
button {
text-shadow: 1px 1px darken(#e74c3c, 15%) ,
2px 2px darken(#e74c3c, 15%) ,
[etc.]
}
所以,它似乎是在逗号之前生成空格,但我不知道这是不是真正的问题
使用逗号作为分隔符输出字符串'逗号'而不是符号,前面有空格
答案 0 :(得分:3)
你在这里遇到两个问题。
所以,你想要的是更像这样的东西:
@mixin long-shadow($clr: $color-primary, $perc: 15%, $dir: 'right') {
$all: ();
@for $i from 1 through strip-units($size/2) {
$all: append($all, if($dir == 'left', $i * 1px, $i * -1px) $i * 1px darken($clr, $perc), comma);
}
text-shadow: $all;
}