我正在尋找更少的for循環。是否可以在Less內做到這一點?我知道它有能力評估js,但在這個程度上?你可以在LESS css中做一個javascript for循環嗎?
回答
我會推薦給結帳Twitter Bootsrap。他們正在建設他們的網格系統。他們使用遞歸循環,而不是輸入他們需要的每個類。
有趣的部分是在mixins.less文件,在欠目錄,下面的「//網格」的評論(線516)。有趣的部分是:
#grid {
.core (@gridColumnWidth, @gridGutterWidth) {
.spanX (@index) when (@index > 0) {
(~"[email protected]{index}") { .span(@index); }
.spanX(@index - 1);
}
.spanX (0) {}
...
.span (@columns) {
width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
}
...
這是這種方式稱爲grid.less文件中少目錄:
#grid > .core(@gridColumnWidth, @gridGutterWidth);
即產生(除其他事項外):
.span12 {
width: 940px;
}
.span11 {
width: 860px;
}
.span10 {
width: 780px;
}
...
在bootstrap.css線170
對於@gridColumnWidth,@gridGutterWidth和變量,其餘檢查VAR iables.less文件(行184)
一定要安裝lessc節點編譯器的最新版本。
謝謝。如果有人無法理解這個/需要更詳細的解釋:http://blog.thehippo.de/2012/04/programming/do-a-loop-with-less-css/ – TheHippo
我只是看Bootstrap中的這個昨天晚上,它吹了我的腦海,然後我不得不在我自己的網格庫中實現它。好棒! – kalisjoshua
很高興你覺得它有用@kalisjoshua!振作起來總是歡迎:) – AlessMascherpa
沒有什麼關於the docs循環的,但因爲你可以通過反引號訪問JavaScript表達式,你總是可以在你的腳本(而不是更少的代碼定義一個函數,但JavaScript的 —例如,如果在瀏覽器中,你會有一個單獨的script
元素),做你的循環,然後訪問它,比如:
@height: `doMyLoop()`
這取決於你想達到與循環什麼。如果你想循環輸出CSS規則,我懷疑你運氣不好。
我正在嘗試創建一個在24 col網格中創建的循環。基本上,我希望它循環24次並編寫網格類。 .grid_1,.grid_2,...,.grid_24 –
這可以通過AlessMascherpa上面小MODS給出的例子中進行,雖然輸出降壓(10,9,8 ...)對向上(1, 2,3 ...),它只是一個風格的東西。 – augurone
這是一個黑客,但... 添加到您的少的文件。
@testColor: green;
unusedclass {
unknownprop: ~`loopCss(10,".group{{i}} { background-color: @{testColor}; }")`
}
用下面的函數創建一個JavaScript文件loopCss.js:
function loopCss(count,cssTemplate) {
// end the existing unused class
var result = "0;}\n";
// Add your custom css
for(var i=0; i<count; i++) result += cssTemplate.replace("{{i}}",i) +"\n";
// Handle the close bracket from unused class
result += "unusedclass {";
return result;
}
現在包括loopCss.js您less.js之前,它應該工作。
- 1. 你可以在LESS CSS的mixin中設置一個變量嗎?
- 2. 我可以做這個JavaScript循環嗎?
- 3. 你可以排序/訂購一個PHP FOR循環嗎?
- 4. LESS CSS @import for javascript
- 5. 在Highcharts API中做一個for循環
- 6. 我可以在javascript中的一條語句中運行兩個for循環嗎?
- 7. 你可以像Python中的-1步一樣在Python中使用for循環嗎?
- 8. PHP我可以做這個循環嗎?
- 9. 打印比做一個for循環
- 10. 你應該在for-in循環中創建一個var嗎?
- 11. 你應該在循環中做一個assert語句嗎?
- 12. 你如何做一個for循環中的「href」鏈接?
- 13. 的JavaScript你的第二個 「for」 循環
- 14. 一個for循環可以遞增/遞減多於一個嗎?
- 15. 在同一個LESS文件中多個'for'循環
- 16. For循環在Javascript中的for循環
- 17. for循環for循環? - Javascript
- 18. 你可以在Python中聲明一個循環時啓動一個變量嗎?
- 19. 你可以在這個循環中使用浮點數嗎?
- 20. 你如何在for循環
- 21. 我可以用一個循環來做到這一點嗎?
- 22. for循環可以隨機編號嗎?
- 23. 當你不需要Python中的索引時,你如何做一個For循環?
- 24. 我可以使用'for'循環嗎?
- 25. 我可以在for循環中設置多個window.setTimeout事件嗎?
- 26. 可以在for循環中使用多個if語句嗎?
- 27. 我可以在for循環中打印每個值嗎?
- 28. 可以在for循環中使用多個continue語句嗎?
- 29. LESS:你可以用媒體查詢分組一個CSS選擇器嗎?
- 30. 麻煩做一個for循環與一個do-while循環
LESS只是一個CSS預編譯器。最終結果是純CSS。我沒有看到Javascript進入它的位置? –
@Pekka:LESS可以通過Node.js([more here](http://lesscss.org/))在瀏覽器和服務器端動態執行。其部分語法確實是評估一個JavaScript表達式,例如(客戶端):'@height:\'document.body.clientHeight \';' –
@ T.J。啊,你知道什麼!有趣的,謝謝。 –