2016-05-04 2 views
1

は、次のことを考えてみましょう:入れ子のときはmixin括弧はオプションですか?

.flashing { 

    .flashKeyFrames(fade-in;{ 
     0%, 100% {opacity: 1;} 
     50% {opacity: 0;} 
     }); 

    .flashing(fade-in linear infinite alternate; 1s) 

} 

.flashKeyFrames(@name; @arguments) { 
    @-moz-keyframes @name { @arguments(); } 
    @-webkit-keyframes @name { @arguments(); } 
    @keyframes @name { @arguments(); } 
} 

.flashing(@arguments, @duration) { 
    -webkit-animation: @arguments; 
    -moz-animation: @arguments; 
    animation: @arguments; 

    -webkit-animation-duration: @duration; 
    -moz-animation-duration: @duration; 
    animation-duration: @duration; 
} 

@arguments後に必ずしもカッコは何ですか?私はミックスインとして使用すると括弧は省略可能だと思いましたか?だから私は@argumentsはmixinとして定義されていないと仮定しているが、それは何ですか?

答えて

1

いいえ、.flashKeyFramesで使用@argumentsないミックスインです。 は、mixinに渡される引数です。この引き数に設定されている値セットはdetached rulesetであり、切り離されたルールセット呼び出しが機能するには、末尾の括弧()が必須です。 切り離さルールセットの呼び出し後

括弧必須である:以下は少ないのウェブサイトからの抽出物です。電話@detached-ruleset;はうまくいきません。

括弧は、ルールセットではなくmixinを呼び出す場合にのみオプションではありません。

関連する問題