通过base px * n第n个元素缩进每个第n个元素
可以说我有n个div。通过base px * n第n个元素缩进每个第n个元素
<div class="indent">1</div>
<div class="indent">2</div>
<div class="indent">n</div>
我要缩进的第一个10px的,另一本由10px的多个等..这怎么能与CSS3(或更少)来完成?
.indent {
padding-left: 10px;
}
.indent :nth-of-type(2) {
padding-left: 20px;
}
.indent :nth-of-type(3) {
padding-left: 30px;
}
我想使上面的代码为1或两个衬垫..
检查this出来。
它描述了如何在Less中创建循环。
对于你的问题,这应该是诀窍,假设你知道你有多少个div。
.loop(@counter) when (@counter > 0) {
.loop((@counter - 1)); // next iteration
.indent :nth-of-type(@{counter}) {
padding-left: unit((10 * @counter), px);
}
} .loop(3);
这里,这段代码会产生3次迭代。
请注意,迭代是根据您要求的迭代次数1生成的。在此处,您将按照相反的顺序提问。
> in相反的顺序。 - 实际上这个循环以正确的顺序生成事物(因为在当前迭代样式之前调用下一个迭代,所以当循环展开时样式被“打印出来”)。 – 2014-10-01 17:31:13
还有'padding-left:unit((10 * @counter),px);'可以简化为'padding-left:(@counter * 10px);' – 2014-10-01 17:34:14
非常感谢 – 2014-10-01 17:56:36
你可以使用[循环在LESS](http://lesscss.org/features/#loops-feature),但会产生臃肿的CSS足够的__great enough_ ... – FelipeAls 2014-10-01 17:19:07
只是一个说明: '.indent:n-type-type(3){'将使它在'indent' div内查找子节点。伪选择器必须放在一起:'.indent:n-type-type(3){' – LcSalazar 2014-10-01 17:19:24
最简单的就是让这些元素的子元素不是兄弟元素,像这样:http://jsfiddle.net/0ujbe572/ – 2014-10-01 17:19:58