我正在寻找更少的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。啊,你知道什么!有趣的,谢谢。 –