Меньше миксинов имеют возможность использовать аргументы через точку с запятой (а также через запятую). Они рекомендуют всегда использовать точки с запятой .
Если точка с запятой присутствует в списке аргументов при вызове mixin, все точки с запятой будут рассматриваться как аргументы, даже если в этих вещах есть запятые. Это позволяет вам передавать список через запятую как аргумент ONE . Если точка с запятой NOT присутствует, она будет рассматривать запятые как разделители аргументов.
.transition(@property: all; @time: 1s; @timing: ease-in-out) { // NOTE THE SEMICOLONS
transition: @property @time @timing;
}
a {
.transition(color,opacity; .5s); // SEMICOLON AFTER 'opacity'
}
b {
.transition(color,opacity, .5s); // COMMA INSTEAD
}
выход:
a {
transition: color,opacity .5s ease-in-out;
}
b {
transition: color opacity .5s; // invalid syntax
}
Обратите внимание, что синтаксис сокращенного свойства transition
должен быть разделенным запятыми списком одиночных переходов. Таким образом, b
имеет недопустимое значение, а a
имеет два перехода, в которых неопределенные значения по умолчанию имеют свои начальные значения:
color 0s ease 0s
opacity .5s ease-in-out 0s
Вероятно, это не то, что вы намеревались. (Похоже, вы хотели color .5s ease-in-out 0s
и opacity .5s ease-in-out 0s
.)
Теперь вы можете задаться вопросом: «Как передать список через запятую как один аргумент, если нет других аргументов?» Просто добавьте фиктивную точку с запятой в конце списка.
.transition(@property: all; @time: 1s; @timing: ease-in-out) {
transition: @property @time @timing;
}
b {
.transition(color,opacity;); // DUMMY SEMICOLON AFTER ARGUMENT
}
i {
.transition(color,opacity); // MISSING SEMICOLON
}
выход:
b {
transition: color,opacity 1s ease-in-out; // 'color,opacity' is the first argument
}
i {
transition: color opacity ease-in-out; // 'color' is 1st arg, 'opacity' is 2nd arg
}
Опять же, синтаксис для i
недопустим, и b
имеет два перехода:
color 0s ease 0s
opacity 1s ease-in-out 0s