如果您的意思是.button-default
and .button-warning
是那些“父母”,.button-hover-effect-mixin
那么您的朋友就是变量:
.button-default {
@background-color: rgb(100, 200, 250);
background-color: @background-color;
&:hover {
.button-hover-effect-mixin();
}
}
.button-warning {
@background-color: rgb(250, 100, 0);
background-color: @background-color;
&:hover {
.button-hover-effect-mixin();
}
}
.button-hover-effect-mixin() {
background-color: darken(@background-color, 50%);
}
您也可以将此变量设置为 的参数.button-hover-effect-mixin
。另外不要错过&
附近的:hover
选择器(没有&
它扩展.button-default :hover
,这可能不是你需要的,请参阅嵌套)。
而且...如果方向正确并且这些颜色是按钮之间的唯一区别,我会将整个片段重写为如下所示:
.button(default, rgb(100, 200, 250));
.button(warning, rgb(250, 100, 0));
.button(@name, @color) {
.button-@{name} {
background-color: @color;
&:hover {
background-color: darken(@color, 50%);
}
}
}