2016-03-28 16 views
2

Ich schrieb ein SASS-Mixin und enthielt es in einer anderen Teildatei. Aus irgendeinem seltsamen Grund enthält es nicht den Code-Block in der kompilierten CSS. Ich kann die Berechnungen mit @debug ablegen, und sie sind korrekt. Warum schreibt es nicht in meine CSS-Datei? Andere Regeln, die am gleichen Ort wie der Mixin deklariert werden, werden gerade kompiliert, nur nicht der Mix. Irgendwelche Hinweise würden viel helfen. Hier ist der Code:Stormed von SASS Mixin

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

Die Debug-Eigenschaft gibt die folgenden:

_mixins.scss:4 DEBUG: 1.06667rem 

Hier ist der Wähler, die es verbraucht:

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; 
} 

Zusammengestellt 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 
} 

Ausgabe von Debug-Anweisungen:

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

Antwort

2

Versuchen zu interpolieren:

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

Edit:

Weil Sie Sass wollen die Variable property als CSS-Eigenschaft zu behandeln, müssen Sie es zu interpolieren.

Sonst führt Sass eine variable Zuweisung durch.