首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不太奇怪的Prepros编译

不太奇怪的Prepros编译
EN

Stack Overflow用户
提问于 2015-03-30 00:15:29
回答 1查看 138关注 0票数 0

我有更少的代码:

代码语言:javascript
复制
colors : 1 #F00, 2 #0F0, 3 #00F, 4 #F0F;

.for(@colors); .-each(@values) {
    @position: extract(@values, 1);
    @color: extract(@values, 2);

    &.raster-@{position} {
        background-image: linear-gradient(#000000, @color);
    }
}

我正在使用来自https://github.com/seven-phases-max/less.curious/blob/master/src/for.less的for mixin

生成的代码为:

代码语言:javascript
复制
.bg-1 {
  background-color: #ff0000 !important;
  color: extract(1 #ff0000, 3);
}
.bg-2 {
  background-color: #00ff00 !important;
  color: extract(2 #00ff00, 3);
}
.bg-3 {
  background-color: #0000ff !important;
  color: extract(3 #0000ff, 3);
}
.bg-4 {
  background-color: #ff00ff !important;
  color: extract(4 #ff00ff, 3);
}

我找到问题了。我使用.for()生成.bg-xx类。

代码语言:javascript
复制
@bgColors : red red yellow, blue blue white;

.for(@bgColors); .-each(@values) {
    @name: extract(@values, 1);
    @bgColor: extract(@values, 2);
    @color: extract(@values, 3);

    &.bg-@{name} {
        background-color: @bgColor !important;
        color: @color;
    }
}

这段代码有什么问题?

EN

回答 1

Stack Overflow用户

发布于 2015-03-30 04:51:35

除了在if-wrapper (mixin)或mixin中使用“技巧”,您还可以考虑使用mixins guards来创建循环,如:http://lesscss.org/features/#loops-feature

例如:

代码语言:javascript
复制
@bgColors: red red yellow, blue blue white;

.backgrounds(@colors; @iterator: 1) {

    @name: extract(extract(@colors, @iterator), 1);
    @bgColor: extract(extract(@colors, @iterator), 2);
    @color: extract(extract(@colors, @iterator), 3);

    &.bg-@{name} {
        background-color: @bgColor !important;
        color: @color;
    }

   & when (@iterator < length(@colors)) {
     .backgrounds(@colors; @iterator + 1);
   }
}
.backgrounds(@bgColors);

编译为以下CSS代码:

代码语言:javascript
复制
.bg-red {
  background-color: red !important;
  color: yellow;
}
.bg-blue {
  background-color: blue !important;
  color: white;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29331553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档