2016-03-28 128 views
2

我寫了一個SASS mixin,並將它包含在另一個部分文件中。由於一些奇怪的原因,它沒有在編譯的CSS中包含代碼塊。我可以使用@debug轉儲計算,並且它們是正確的。爲什麼不寫入我的CSS文件?其他與mixin聲明在同一個地方的規則正在被編譯,而不是mixin。任何指針都會有很大幫助。下面的代碼:難倒SASS mixin

@mixin px2rem($property, $px) { 
    $property: $px; 
    $property: ($px/$base-font-size) * 1rem; 
    @debug inspect(($px/$base-font-size) * 1rem); 
} 

調試屬性,並輸出如下:

_mixins.scss:4 DEBUG: 1.06667rem 

這裏是消耗它的選擇:

input, select { 

    @include px2rem(font-size, 15px); 
    @debug (16px/$base-font-size) * 1rem; 
    @debug (15px/16px) * 1rem; 

    height: 2.5rem; 
    line-height: 2.5rem; 
    padding: 1rem; 
    width: 70%; 
    margin-bottom: 1rem; 
    border-radius: 1px; 
    border: #bcbebf 1px solid; 
} 

編譯CSS:

.subscription input, 
.subscription select{ 
    height:2.5rem; 
    line-height:2.5rem; 
    padding:1rem; 
    width:70%; 
    margin-bottom:1rem; 
    border-radius:1px; 
    border:1px solid #bcbebf 
} 

調試語句的輸出:

_subscription.scss:9 DEBUG: 1.06667rem 
_subscription.scss:10 DEBUG: 0.9375rem 

回答

2

嘗試插值:

@mixin px2rem($property, $px) { 
    #{$property}: $px; 
    #{$property}: ($px/$base-font-size) * 1rem; 
    @debug inspect(($px/$base-font-size) * 1rem); 
} 

編輯:

因爲要無禮對待變量property爲CSS屬性,你需要它插。

否則,Sass將執行變量賦值。