Являются ли скобки 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? Я думал, что круглые скобки были необязательны при использовании в качестве mixins? Итак, я предполагаю @arguments не определяется как миксин, но тогда что это?

1 ответ

Решение

Нет, @arguments используется в .flashKeyFrames это не миксин. Это аргумент, который передается в миксин. Набор значений, установленный для этого аргумента, является отдельным набором правил, а для вызова отдельного набора правил сработают круглые скобки. () в конце обязательно. Ниже выписка из веб-сайта Less:

Круглые скобки после отдельного вызова набора правил являются обязательными. Вызов @detached-ruleset; не будет работать.

Круглые скобки не являются обязательными только при вызове миксина, а не набора правил.

Другие вопросы по тегам