2014-01-19 28 views
2

考虑以下两个混入:传递一个“空”的说法到上海社会科学院混入,这样的默认参数被使用

@mixin padding($v: 8px) 
    padding: $v - 3 $v $v - 3 $v 

@mixin button($padding: "") 
    @include padding($padding) 
    @include border-radius 
    border: 1px solid black 

我可以叫@include padding不带参数,默认8px被使用,没有问题。但是,我怎样才能调用button mixin,并仍然在padding mixin中使用默认值?如果我只是简单地打电话@include button而没有任何争论,那么button mixin似乎仍然将某种参数传递给paddingpadding不可避免地解释为0,因此不会添加任何填充)。基于Making a Sass mixin with optional arguments,我试图修改button混入有

@include padding(unquote($padding))

但都没有效果 - padding似乎仍然解释参数为0,而不是那里是没有论据,从而使用其默认值。

回答

4

此问题通常通过将两个mixin的默认参数设置为相同的值来解决。您可能想要为此使用全局变量:

$default-padding: 8px 

@mixin padding($v: $default-padding) 
    padding: $v - 3 $v $v - 3 $v 

@mixin button($padding: $default-padding) 
    @include padding($padding) 
    @include border-radius 
    border: 1px solid black 
+0

是的,这是我正在使用的解决方案。 – maxedison

相关问题