Меньше CSS проблем со ссылками на функцию пространства имен - PullRequest
0 голосов
/ 17 мая 2019

Я начал использовать пространства имен в Less CSS и столкнулся с нерегулярностью, которая кажется ошибкой, а не дизайном.

#responsive {
    .spacing {
        .margin(@property; @side) {
            // This WON'T work when called externally.
            .margin(@property; @side; @side; @side; @side);
        }
        .margin(@property; @vertical; @horizontal) {
            // This WILL work when called externally.
            #responsive.spacing.margin(@property; @vertical; @horizontal; @vertical; @horizontal);
        }
        .margin(@property; @top; @right; @bottom; @left) {
        // This is the function that eventually gets called
        }
    }
}

В этом примере показана перегруженная функция с 3 разными сигнатурами.Он вызывается следующим образом:

#responsive.spacing.margin(padding, 1);

При ссылке на верхнюю перегрузку, которая затем вызывает основную функцию, я получаю ошибку компиляции.

.margin cannot be referenced...

Это можно исправить, применив полностьюnamespace name как во втором варианте.

Хотя это обходной путь, кажется, что он противостоит тому, что такое пространство имен, в конце концов .margin просто вызывает другую версию .margin внутри того же пространства имен, #responsive.spacing.

...