2013-01-02 21 views
7

我不能跟一个mixin得到萨斯输出!important关键字,我已经试过:如何使用!mixin中的重要关键字?

@include font-size($font-size-sml) !important; 

和:

@include font-size($font-size-sml !important); 

它总是抛出一个错误。

编辑

我结束了这个工作正常:

@mixin font-size($font-size, $sledge-hammer: "") { 
    font-size: $font-size #{$sledge-hammer}; 
    font-size: ($font-size/$base-font-size)+rem #{$sledge-hammer}; 
    line-height: ceil($font-size/$base-line-height) * ($base-line-height/$font-size); 
} 
+0

什么错误,你得到什么? – Jeroen

+0

我们需要看到你打来的混音,问题出在那里。 – cimmanon

+0

这里是混合: '@mixin font-size($ font-size){ font-size:$ font-size; font-size:($ font-size/$ base-font-size)* 1rem; line-height:ceil($ font-size/$ base-line-height)*($ base-line-height/$ font-size); } –

回答

8

不能添加!important在SASS整个混入(可以在更短的,我认为)喜欢你”重新尝试在第一个例子中做。

第二个例子适用于我(你可以传递重要的参数),我的意思是,如果你直接使用$font-size-sml作为它的属性值,所以也许检查你的语法。

但是,如果它真的不适合你,你可以用flag做一些事情,将一个important_flag设置为mixin参数,然后在mixin中使用if-else语句。事情是这样的:

@mixin large-text($prop, $is_imp: false) { 
    @if $is_imp == false { 
     font-size: $prop; 
    } @else { 
     font-size: $prop !important; 
    } 
} 

也许这不是一个富有魅力的方式做到这一点,但它工作;-)

+0

我无法得到第二个例子的工作,我刚刚开始编写Sass,所以我是新的语法。我宁愿不使用mixin来应用'!important',因为它看起来有点矫枉过正,我认为在调用mixin时能够添加它很容易? –

+0

在你的代码中,你使用'$ font-size'来做简单的数学运算,比如'$ font-size/$ base-font-size'。所以你可以传参数'$ font-size-sml!important',因为它看起来像'$ font-size-sml!important/$ base-font-size'这是错误的 –

+0

没有太多的运气,我害怕。 –