寫一個 for-each 迴圈
Less 中的 for-each 迴圈具有與 for 迴圈相同的關鍵元件,但以下差異除外:
- 一個變數,包含必須迭代的項列表。
- 一個
extract()
函式,用於根據迴圈索引提取變數中的每個專案。 length()
函式用於計算陣列的長度(即列表中的專案數),並在主要 mixin 呼叫中使用它(對於[initialization]
)。
下面是用 Less 編寫的每個迴圈的示例,它遍歷 @images
變數中的每個專案,建立一個 #id
選擇器,其中 id
與專案/影象名稱相同,併為其設定背景影象屬性。
@images: cat, dog, apple, orange; /* the array list of items */
.for-each-loop(@index) when (@index > 0) { /* recursive mixin call with guard - condition */
@image: extract(@images, @index); /* extract function to fetch each item from the list */
/* the statement */
#@{image} {
background-image: url("http://mysite.com/@{image}.png");
}
/* end of the statement */
.for-each-loop(@index - 1); /* the next iteration's call - final-expression */
}
.for-loop(length(@images)); /* the primary call with length() function - initialization */
編譯 CSS:
#orange {
background-image: url("http://mysite.com/orange.png");
}
#apple {
background-image: url("http://mysite.com/apple.png");
}
#dog {
background-image: url("http://mysite.com/dog.png");
}
#cat {
background-image: url("http://mysite.com/cat.png");
}