嵌套时mixin括号是否可选?

时间:2016-05-04 09:57:34

标签: less less-mixins

请考虑以下事项:

.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之后必须有哪些括号?我认为当用作mixins时,括号是可选的?所以我假设@arguments没有被定义为mixin,但那么它是什么?

1 个答案:

答案 0 :(得分:1)

不,@arguments中使用的.flashKeyFrames 不是mixin 是传递给mixin的参数 。为此参数设置的值集是detached ruleset,并且要使分离的规则集调用起作用,最后的括号()是必需的。以下是Less网站的摘录:

  

分离的规则集调用后的括号 。电话@detached-ruleset;无效。

只有在调用mixin而不是规则集时,括号才是可选的。