2014-09-18 117 views
0

我有简单的计算混入:萨斯混入并不需要的价值,但变量名称,而不是

@mixin calc($what, $how, $that) { 
    width: -webkit-calc($how- $that); 
    width: -moz-calc($how - $that); 
    width: calc($how- $that); 
    width: $how; 
} 

里面我是用:

@include calc("width", 100%, 6px); 

但是编译后我得到:

width: -webkit-calc($how- $that); 
    width: -moz-calc($how - $that); 
    width: calc($how- $that); 
    width: 100%; 

我做错了什么? 为什么只有最后一行是好的?

在此先感谢!

回答

2

您需要使用Sass variable interpolator

@mixin calc($what, $how, $that) { 
    width: -webkit-calc(#{$how}- #{$that}); 
    width: -moz-calc(#{$how}- #{$that}); 
    width: calc(#{$how}- #{$that}); 
    width: $how; 
} 

.sel { 
    @include calc("width", 100%, 6px); 
} 

产量

.sel { 
    width: -webkit-calc(100%- 6px); 
    width: -moz-calc(100%- 6px); 
    width: calc(100%- 6px); 
    width: 100%; 
} 
+0

要命的,谢谢你,你能告诉我如何使用$什么参数吗? (在mixin中使用它来代替“width”) – 2014-09-18 19:01:07

+1

同样的方法 - 只需用'#{$ what}替换mixin中的'width'属性' – dinocarl 2014-09-18 19:37:04