Вычисление background-position по формуле в LESS Css - PullRequest
0 голосов
/ 21 ноября 2011

Мне нужно иметь возможность вычислять положение фона с помощью математической формулы в LESS Css с помощью функционального метода, который принимает координаты x и y изображения спрайта. Мое лучшее предположение для этого заключается в следующем, но, увы, это не работает.

@icon_base: 30px;
@icon: 24px;
/*sets the position of the background based on the x and y position order */
.icon_position(@x: 1, @y: 1) {
    @posx: ((#sizes[@icon_base] - #sizes[@icon])/2 + (@x * #sizes[@icon_base])) * -1;
    @posy: ((#sizes[@icon_base] - #sizes[@icon])/2 + (@y * #sizes[@icon_base])) * -1;
    background-position: @{posx}px @{posy}px;
}

1 Ответ

3 голосов
/ 05 декабря 2011

Я думаю, что у вас есть некоторые вещи в вашей работе, которые не поняты lesscss. Я переписал вашу операцию так:

@icon_base: 30px;
@icon: 24px;
/*sets the position of the background based on the x and y position order */
.icon_position(@x: 1, @y: 1) {
    @posx:((@icon_base - @icon)/2 + (@x * @icon_base)) * -1;
    @posy:((@icon_base - @icon)/2 + (@y * @icon_base)) * -1;
    background-position:~`"@{posx}"` ~`"@{posy}"`;  
}

Работает без ошибок и по умолчанию выводит:

background-position: -33px -33px;
...