在更短的你可以用更通用的代码得到这样的:
@what: #111;
@where: #222;
@who: #333;
@post: #444;
@events: #555;
@deals: #666;
@items: what,
where,
who,
post,
events,
deals;
@items-count: 6;
.sections() {
.-(@items-count);
.-(@i) when (@i > 0) {
.-((@i - 1));
@name: extract(@items, @i);
[email protected]{name} & {
color: darken(@@name, 10%);
}
}
}
a {
.sections();
}
b {
.sections();
}
或者,如果你不需要为别的那些变量,甚至更好:
@items: what #111,
where #222,
who #333,
post #444,
events #555,
deals #666;
.sections() {
.-(length(@items));
.-(@i) when (@i > 0) {
.-((@i - 1));
@item: extract(@items, @i);
@name: extract(@item, 1);
[email protected]{name} & {
color: darken(extract(@item, 2), 10%);
}
}
}
a {
.sections();
}
b {
.sections();
}
它看起来很冗长,但我认为一个定制水平值得这一点。 请注意,length
函数仅在LESS 1.5.x中可用,对于早期版本,可以像第一个示例中那样使用预定义的计数变量。
而另一种方法(如果你喜欢 “复制粘贴” 的风格):
@what: #111;
@where: #222;
@who: #333;
@post: #444;
@events: #555;
@deals: #666;
.item(@name) {
[email protected]{name} & {
color: darken(@@name, 10%);
}
}
a {
.item(what);
.item(where);
.item(who);
.item(post);
.item(events);
.item(deals);
}
附:
因此,每个被它的部分改变的元素都需要定义这个部分的列表。有时它的颜色,背景颜色,边框颜色等......
也可以添加更多的“定制点”的性质,以及 - 但它依赖于这些部分和CSS属性究竟怎么绑彼此......(所以我没有把它放在上面的例子中,以免让事情变得更难以理解)。 基本上关键是“list/loops”,“mixins/abstraction”等。
这正是我所期待的。谢谢! – stueynet
所以我试着用http://lesstester.com/编译它,然后我得到了“对一个无效类型的操作”。当我编译它在http://winless.org/online-less-compiler它工作正常。当我在本地mac上用Grunt/Recess进行编译时,它会得到相同的错误。思考? – stueynet
正如我刚才提到的'length'函数在几天前发布的LESS 1.5.0中可用。最有可能的是,较差的测试者和休息时间尚未更新。没关系,你可以定义'@ items-count:6;'并用'@ items-count'替换'length(@items)'。 –