2016-01-21 71 views
0

所以我試圖採用這個雪佛龍碼進入sass mixin: http://lugolabs.com/caretSass mixin compiation errors

但是,我遇到了sass編譯錯誤。

說這行:「border- $ dira:$ secondSize solid $ bgColor;」 是不正確的...

有人能告訴我這個代碼怎麼了?

@mixin chevron($caretWidth, $borderWidth, $direction: 'top', $color, $bgColor) { 

    @if $direction == 'top' { 
    $dira: 'bottom'; 
    $dirb: 'left'; 
    $dirc: 'right'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:$borderWidth; 

    } @else if $direction == 'bottom' { 
    $dira: 'top'; 
    $dirb: 'left'; 
    $dirc: 'right'; 
    $top1:0px; 
    $left1:0px; 
    $top2:0px; 
    $left2:$borderWidth; 
    } @else if $direction == 'left' { 
    $dira: 'right'; 
    $dirb: 'top'; 
    $dirc: 'bottom'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:$borderWidth; 
    } @else if $direction == 'right' { 
    $dira: 'left'; 
    $dirb: 'top'; 
    $dirc: 'bottom'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:0px; 
    } 

    position: relative; 

    $secondSize: $caretWidth - $borderWidth; 

    &:before { 
    content: ''; 
    position: absolute; 
    top: $top1; 
    left: $left1; 
    border-$dira: $caretWidth solid $color; 
    border-$dirb: $caretWidth solid transparent; 
    border-$dirc: $caretWidth solid transparent; 
    } 

    &:after { 
    content: ''; 
    position: absolute; 
    top: $top2; 
    left: $left2; 
    border-$dira: $secondSize solid $bgColor; 
    border-$dirb: $secondSize solid transparent; 
    border-$dirc: $secondSize solid transparent; 
    } 
} 
+0

要在輸出時使用一個字符串,用'界 - #{$迪拉}:$ caretWidth ....' – somethinghere

+0

謝謝啊!這是做到了。 – Dannyboy

回答

1

爲了使SASS正確打印字符串中的輸出本身,使用字符串插值方法SASS提供:#{$do-what-ever}

文檔:http://sass-lang.com/documentation/file.SASS_REFERENCE.html#interpolation_

@mixin chevron($caretWidth, $borderWidth, $direction: 'top', $color, $bgColor) { 

    @if $direction == 'top' { 
    $dira: 'bottom'; 
    $dirb: 'left'; 
    $dirc: 'right'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:$borderWidth; 

    } @else if $direction == 'bottom' { 
    $dira: 'top'; 
    $dirb: 'left'; 
    $dirc: 'right'; 
    $top1:0px; 
    $left1:0px; 
    $top2:0px; 
    $left2:$borderWidth; 
    } @else if $direction == 'left' { 
    $dira: 'right'; 
    $dirb: 'top'; 
    $dirc: 'bottom'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:$borderWidth; 
    } @else if $direction == 'right' { 
    $dira: 'left'; 
    $dirb: 'top'; 
    $dirc: 'bottom'; 
    $top1:0px; 
    $left1:0px; 
    $top2:$borderWidth; 
    $left2:0px; 
    } 

    position: relative; 

    $secondSize: $caretWidth - $borderWidth; 

    &:before { 
    content: ''; 
    position: absolute; 
    top: $top1; 
    left: $left1; 
    border-#{$dira}: $caretWidth solid $color; 
    border-#{$dirb}: $caretWidth solid transparent; 
    border-#{$dirc}: $caretWidth solid transparent; 
    } 

    &:after { 
    content: ''; 
    position: absolute; 
    top: $top2; 
    left: $left2; 
    border-#{$dira}: $secondSize solid $bgColor; 
    border-#{$dirb}: $secondSize solid transparent; 
    border-#{$dirc}: $secondSize solid transparent; 
    } 
}