Мне нравится делать mixins с SASS, которые помогают мне сделать хорошую совместимость между браузерами. Я хочу создать mixin, который выглядит так:
@mixin box-shadow($value) {
box-shadow: $value;
-webkit-box-shadow: $value;
-moz-box-shadow: $value;
}
к которому я могу передать что-то вроде этого:
@include box-shadow(inset -2px -2px 2px rgba(0,0,0,0.5), inset 1px 1px 2px rgba(255,255,255,0.5), inset 0px 0px 0px 1px #ff800f);
в результате чего будет что-то вроде этого:
box-shadow: inset -2px -2px 2px rgba(0,0,0,0.5), inset 1px 1px 2px rgba(255,255,255,0.5),inset 0px 0px 0px 1px #ff800f;
-moz-box-shadow: inset -2px -2px 2px rgba(0,0,0,0.5), inset 1px 1px 2px rgba(255,255,255,0.5),inset 0px 0px 0px 1px #ff800f;
-webkit-box-shadow: inset -2px -2px 2px rgba(0,0,0,0.5), inset 1px 1px 2px rgba(255,255,255,0.5),inset 0px 0px 0px 1px #ff800f;
Однако это не работает, потому что компилятор думает, что я пытаюсь передать mixin 3 аргумента. box-shadow принимает переменное количество разделенных запятыми битов, поэтому я не могу просто определить mixin как box-shadow($1,$2,$3)
.
Я пробовал пропустить
@include box-shadow("inset -2px -2px 2px rgba(0,0,0,0.5), inset 1px 1px 2px rgba(255,255,255,0.5), inset 0px 0px 0px 1px #ff800f");
и он скомпилирован, но на самом деле не отображал стили.
Любые советы о том, как разрешить это?