Я пытаюсь сделать миксин для правильного преобразования пикселей в относительные ems. Я хотел бы, чтобы он был достаточно гибким, чтобы любое свойство можно было использовать с любым количеством значений пикселей.
Любые идеи о том, как добавить несколько значений к одному свойству без ошибки рекурсии, которую я создаю внутри цикла for?
желаемый пример использования 1:
.pixels-to-rems(font-size; 10);
желаемый результат:
font-size: 10px;
font-size: 1rem;
желаемый пример использования 2:
.pixels-to-rems(padding; 10,0,20,10);
желаемый результат:
padding: 10px, 0px, 20px, 10px;
padding: 1rem, 0px, 2rem, 1rem;
Вот миксин как есть.
@baseFontSize: 10px;
.pixels-to-rems(@property, @pxvals) {
@pxValue: null;
@remValue: null;
.for(@pxvals); .-each(@pxval) {
@pxValue: @pxValue @pxval;
@remValue: @remValue (@pxval / @baseFontSize);
}
@{property}: ~"@{pxValue}px";
@{property}: ~"@{remValue}rem";
}
Миксин .for() найден здесь
merge
будет объединять значения в одно и то же свойство, вам придется изолировать px и rem с помощью некоторого взлома (например, это). - person seven-phases-max   schedule 06.02.2016merge
просто более проста. - person seven-phases-max   schedule 06.02.2016.for(number)
приводит к вызову.-each
со значением индекса, считая от1
доnumber
(т.е. это). В вашем случае самый простой способ исправить это — просто удалить числовую часть кода.for
(т.е. все, что до// .for-each
). Например. как это. - person seven-phases-max   schedule 09.02.2016