2017-01-04 5 views
0

@mixinの中で@ifのステートメントも機能しなくなりました。CSSのセレクタブラケットの外でミキシングされたサンプの中で@ifステートメントを使用していますか?

このミックスインは基本的に、私がphpを使ってボディクラスに移入しているように 'if less than or equal too'という文をエミュレートしています。

// less than or equal too mixin 
@mixin lte-ie($ver:'9') { 
    @if $ver >= '9' { .ie-9 &, } 
    @if $ver >= '8' { .ie-8 &, } 
    @if $ver >= '7' { .ie-7 &, } 
    .ie-6 & 
    { 
    @content; 
    } 
} 

しかし、ミックスインは失敗し、試してみるとこのエラーが発生します。

後に無効CSS "> =版...のF $ '9' { ":期待される "}"、" .IE-9 &、}" 欄20でライン9に

ました

私はsassmeisterを作ったが、私はあなたが壊れた要旨を保存することはできませんよう@mixinをコメントアウトしなければならなかった..しかし、あなたは上記のコードをテストするために、コメントを解除することができます:)

http://www.sassmeister.com/gist/7bbd084be7e12845866311a6ddbf0cdf

すべてのヘルプはなり大変感謝しています。 (あなたはそれが完全に最適化する必要はありませんので、それは、プリプロセッサの一部だとして、一方で)どのように今の少しの拡張について、あなたはより効率的なソリューションを考えながら

答えて

1

@mixin lte-ie($ver:9) { 
    @if $ver >= 9 { 
    .ie-9 &, .ie-6 & { 
     @content; 
    } 
    } 
    @if $ver >= 8 { 
    .ie-8 &, .ie-6 & { 
     @content; 
    } 
    } 
    @if $ver >= 7 { 
    .ie-7 &, .ie-6 & { 
     @content; 
    } 
    } 
    @if $ver > 7 { 
    .ie-6 & { 
     @content; 
     } 
    } 
} 

HEADER { 
    overflow: hidden; 

    @include lte-ie(9) { 
    position: relative; 
    } 
} 
+0

おかげIammerekとにかく、sassエンジンがセレクタを再コンパイルするだけの最適化の理由については、あなたの権利があると思います。ニース1つありがとう。 – joshmoto

関連する問題