Это первый раз I'mn создание сайта с помощью LESS и столкнулся с проблемой, лучше всего описываемую ниже код:Переменная интерполяции строк возвращает не стоимости единицы товара
@section-row-padding-size-xs: 30px;
@section-row-padding-size-sm: 50px;
@section-row-padding-size-md: 100px;
@section-row-padding-size-lg: 140px;
.section-row-padding(@size) {
@padding-size: ~"@{[email protected]{size}}";
.section-row {
padding: @padding-size 0;
&.quarter-padding-top {
padding-top: @padding-size * 0.25;
}
&.quarter-padding-bottom {
padding-bottom: @padding-size * 0.25;
}
&.half-padding-top {
padding-top: @padding-size * 0.5;
}
&.half-padding-bottom {
padding-bottom: @padding-size * 0.5;
}
&.three-quarters-padding-top {
padding-top: @padding-size * 0.75;
}
&.three-quarters-padding-bottom {
padding-bottom: @padding-size * 0.75;
}
}
}
Все это делает код выводит правые размеры заполнения для использования в медиа-запросах.
Любой вызов .section-row-padding()
либо с аргументом lg, md, sm и xs должен выдавать соответствующие размеры заполнения.
Проблема возникает из-за того, что размер @ padding не задан как единица px, а скорее как строка. Я пробовал несколько методов интерполяции, но никто из них не работает. isnumber(@padding-size)
выходы false и istring(@padding-size)
выходы true. @padding-size + 0px
также не работает, он говорит об операции с недопустимым типом.
Есть ли что-нибудь, что я пропустил?
Спасибо за ваше время и ответ!
'padding: @ padding-size 0;' работает, но любые математические операции терпят неудачу. –
Почему бы вам просто не передать переменную в mixin? .section-рядная обивка (@ секция-рядная обивка размера-XS); –
Это правда! Глупый я, я использовал другие mixins для определения размеров заголовков от h1 до h3, и этот метод был более удобным, но я не думал об этом более просто. Но все же, я хочу знать, как решить проблему выше :) –