css - for循环在较少的css mixin中不起作用

标签 css npm gruntjs less

我注意到,我认为按预期工作的 Less 片段实际上并没有生成我需要的所有样式——我的 for 循环没有工作。

较少的问题是:

.for(@list, @code) {
    & {
        .loop(@i:1) when (@i =< length(@list)) {
            @value: extract(@list, @i);

            @code();

            .loop(@i + 1);
        }

        .loop();
    }
}

.role-variants(@variants, @props){
    .for(@variants, {
      .security_class_@{value} {
        @props();
      }
    });
}

@admin-roles: admin, admin_manager, admin_user, admin_manager_user;

html{
    body{
        &.admin{
            .role-variants(@admin-roles, {display: block;});
        }
    }
}

关于 http://less2css.org/这编译正确,生成我期望的类。

当我在本地编译时,我只得到以下类:

html body.admin .security_class_admin {
    display: block
}

我的 for 循环在本地不工作,尽管它似乎是有效的并且使用 less 编译器工作。关于如何修改它以在本地工作的任何想法,或者我可能需要将我的环境更新到特定版本,尽管它似乎是最新的。

再次感谢您的帮助。

杰米

最佳答案

我的循环格式不正确 - 这个循环现在按预期工作:

.for(@list, @code) {
    & {
        .loop(@i) when (@i > 0) {
            @value: extract(@list, @i);
            @code();
            .loop((@i - 1));
        }
        .loop(length(@list));
    }
}

关于css - for循环在较少的css mixin中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875573/

相关文章:

javascript - 使用 JavaScript 将元素添加到 html 多级列表

css - 对齐 div 中的元素 - 奇怪的行为

html - 具有相同名称的多个输入

node.js - 无法在 Ubuntu 中卸载 Angular CLI - 显示 `up to date in 0.083s`

javascript - 通过 Sails.js 服务器的 Angular.js Web 应用程序

javascript - 使用带有 yeoman 和 grunt 的 passport.js 进行身份验证

node.js - 使用 node.js 应用程序进行 Grunt livereload

javascript - mark.js 不高亮单词?

node.js - 更改现有 Node 模块中的代码

node.js - 使用node和npm qrcode包生成批量二维码