在更短的你可以用更通用的代碼得到這樣的:
@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)'。 –