【发布时间】:2014-03-30 20:01:28
【问题描述】:
我是 Sass 的新手,所以如果这不是做这类事情的最佳方式,我深表歉意!
所以,我有一个用于按钮样式的 mixin,如下所示:
@mixin button ($bg, $color, $padding, $display: inline, $radius: 0, $transition: 0.2s) {
background: $bg;
@if $radius > 0 {
@include border-radius($radius)
}
color: $color;
@if $display != inline {
display: $display;
}
@if $padding > 0 {
padding: $padding;
}
text-decoration: none;
@include transition(all, $transition, linear);
&:hover {
@if lightness($bg) > 50% {
background: darken($bg, 10%);
} @else {
background: lighten($bg, 10%);
}
}
}
还有一个按钮,像这样:
.btn {
@include button(#095d94, #fff, 10px, inline-block);
}
但是,现在我需要另一个具有不同背景颜色的按钮。所以我想知道的是:有没有办法扩展一个类,并且只需更改该类包含的 mixin 的参数,而不必这样做:
.btn2 {
@extend .btn;
background: #bad78d;
&:hover {
background: darken(#bad78d, 10%);
}
}
是否可以输入另一种背景颜色?有点像,
.btn2 {
$bg: #bad78d; //i know this doesn't work
@extend .btn;
}
或者喜欢,
.btn2 ($bg: #bad78d) {
@extend .btn; //this one doesn't even make sense, but I think I'm explaining what I need... ish.
}
【问题讨论】: