如何使用 LESS 为每个第 n 个元素添加不同的 CSS 样式,具体取决于 n
How to add different CSS style to every nth element, depending on n using LESS
我正在尝试向 div 中的后续元素添加不同的填充。我的 DOM 看起来很简单。
<div class="parent">
<div>0</div>
<div>15</div>
<div>30</div>
...
</div>
所以我希望我的第一个元素有 0 个填充,第二个 15,第三个 30 等等。
使用 LESS,我该如何完成这项工作?
我试过:
.parent div:nth-of-type(n) {
padding-left: n*15px;
}
谢谢!
我想你想在视觉上实现一个楼梯。在这种情况下,您可以像下面这样操作:
.parent {
line-height: 1.2em;
}
.parent>div:not(:first-child)::before {
content: "";
float: left;
width: 15px; /*your padding*/
height: calc(1.2em + 2px);
}
<div class="parent">
<div>0</div>
<div>15</div>
<div>30</div>
<div>45</div>
<div>60</div>
<div>75</div>
</div>
使用less(但必须设置元素个数):
.parent (@indexstart,@index) when (@indexstart < @index ){
div:nth-child(@{indexstart}){
padding-left: (@indexstart - 1) * 15px;
}
.parent (@indexstart + 1,@index);
}
.parent (1,4);
我正在尝试向 div 中的后续元素添加不同的填充。我的 DOM 看起来很简单。
<div class="parent">
<div>0</div>
<div>15</div>
<div>30</div>
...
</div>
所以我希望我的第一个元素有 0 个填充,第二个 15,第三个 30 等等。 使用 LESS,我该如何完成这项工作? 我试过:
.parent div:nth-of-type(n) {
padding-left: n*15px;
}
谢谢!
我想你想在视觉上实现一个楼梯。在这种情况下,您可以像下面这样操作:
.parent {
line-height: 1.2em;
}
.parent>div:not(:first-child)::before {
content: "";
float: left;
width: 15px; /*your padding*/
height: calc(1.2em + 2px);
}
<div class="parent">
<div>0</div>
<div>15</div>
<div>30</div>
<div>45</div>
<div>60</div>
<div>75</div>
</div>
使用less(但必须设置元素个数):
.parent (@indexstart,@index) when (@indexstart < @index ){
div:nth-child(@{indexstart}){
padding-left: (@indexstart - 1) * 15px;
}
.parent (@indexstart + 1,@index);
}
.parent (1,4);