2016-09-23 3 views
0

Mit der Funktion SASS 'if() ist es möglich, nach einem Eigenschaftswert zu suchen? Z.B. Ich möchte eine button eine margin-right: 10px standardmäßig haben. Aber, wenn der Knopf float: right ist, möchte ich, dass der Rand margin-left: 10px ist.SASS wenn Funktion zur Überprüfung des Eigenschaftswerts

So etwas wie unten:

margin: if(float=="right" $margin-right $margin-left); 

Offensichtlich ist, dass die oben nicht (sonst würde ich hier schreibe nicht). Aber ist das möglich?

+0

Sie können den Wert von CSS-Eigenschaften nicht mit Hilfe eines Präprozessors abrufen. Aber du kannst Mixin erstellen, das den Float-Wert und die Margin erhält. – 3rdthemagical

Antwort

-1

Es ist eine Weile her, dass ich so jede CSS Sachen tat dies weniger sein könnte, aber man konnte

.buttonClass { 

    @if $float == "right" { 

     $margin-left; 
    } @else { 

     $margin-right; 
    } 

} 
0

Diese mixin versuchen können Schwimmer und Randeigenschaften für jedes Element festgelegt.

@mixin set-button($float: null) { 
    @if ($float == right) or ($float == left) { 
    float: $float; 
    } 

    @if ($float == right) { 
    margin-left: 10px; 
    } @else { 
    margin-right: 10px; // default value 
    } 
} 

.but-1 { 
    @include set-button(right); 
} 

.but-2 { 
    @include set-button(); 
} 

.but-3 { 
    @include set-button(left); 
} 

.but-4 { 
    @include set-button(lol); 
} 

Css output:

.but-1 { 
    float: right; 
    margin-left: 10px; 
} 

.but-2 { 
    margin-right: 10px; 
} 

.but-3 { 
    float: left; 
    margin-right: 10px; 
} 

.but-4 { 
    margin-right: 10px; 
} 

Sassmeister demo.

+0

Sie können die Ausgabe mithilfe von Platzhaltern optimieren http://www.sassmeister.com/gist/849e8976c25219cdadf79785924837f9 – 3rdthemagical

Verwandte Themen