【发布时间】:2014-06-10 02:36:15
【问题描述】:
说明
我有以下混合:
@mixin insideBorder ($thickness:2px, $color:black, $alpha:.05) {
box-shadow:inset 0 0 0 $thickness rgba($color, $alpha);
}
A. 一种使用方式如下:
@include insideBorder();
将输出:
box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.05);
B.我也可以这样使用:
@include insideBorder(5px, red);
将输出:
box-shadow: inset 0 0 0 2px rgba(255, 0, 0, 0.05);
问题
但是,如果我只想更改颜色,我会采用以下两种方式之一:
@include insideBorder(#369);@include insideBorder(red);
然后我会编译为:
box-shadow: inset 0 0 0 #336699 rgba(0, 0, 0, 0.05);box-shadow: inset 0 0 0 red rgba(0, 0, 0, 0.05);
或者如果我这样做:
@include insideBorder(red, .5);
它会报错:
Syntax error: $color: 0.5 is not a color for 'rgba'...
问题
我如何改进这个 mixin,使它可以接受任意数量的参数,但取决于参数的类型,mixin“知道”它属于哪里?
【问题讨论】:
-
请不要在您的问题中发布解决方案,这不是本网站的工作方式。如果您找到问题的解决方案,请将其作为答案发布。
-
@RicardoZea 以后,如果您认为编辑是错误的,请询问为什么要进行编辑,而不是维护您的主导地位。这样做可以避免编辑大战和其他不愉快。如果有分歧,无法通过反复回滚解决:只能讨论。您对 TinyGiant 的回复应该是您想要返回的内容的理由。相反,您所说的我完全不能同意。与其声称自己知道自己在说什么,因为你在这里工作的时间更长,你应该对你的立场给出一个令人信服的解释:教育人们。