Pomijanie opcjonalnego argumentu w Sass mixin
Mam ten mixin do obsługi prostego gradientu liniowego CSS3:
@mixin linear-gradient($from, $to, $dir: bottom, $dir-webkit: top, $ie-filters: false) {
background-color: $to;
background-image: -webkit-linear-gradient($dir-webkit, $from, $to);
background-image: linear-gradient(to $dir, $from, $to);
@if $ie-filters == true and $old-ie {
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#{ie-hex-str($from)}', endColorstr='#{ie-hex-str($to)}');
}
}
$dir
jest skrótem od „kierunku”.
Jeśli muszę to zrobić$ie-filters
„prawda” i nie muszę zmieniać$dir
/ $dir-webkit
wartości domyślne Nadal muszę je redeclare, co oczywiście nie jest zbyt SUCHE i optymalne, więc musiałbym to zrobić:
@include linear-gradient(#7a7a7a, #1a1a1a, bottom, top, true);
Kiedy chcę to zrobić:
@include linear-gradient(#7a7a7a, #1a1a1a, true);
Jak przeskoczyć argumenty w ten sposób podczas wywoływania miksu?
PS, jeśli zastanawiasz się nad$dir-webkit
argument jest dla Webkita, ponieważ nadal nie obsługuje nowej składni gradientu (patrz:http://generatedcontent.org/post/37949105556/updateyourcss3 ->Nowa składnia gradientu), kierunek musi być przeciwieństwem standardowej składni.