如何使用LESS取决于n,向第n个元素添加不同的CSS样式

时间:2018-12-04 11:21:26

标签: css less padding

我正在尝试向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;
}

谢谢!

2 个答案:

答案 0 :(得分:4)

我想你想在视觉上达到一个台阶。在这种情况下,您可以按照以下步骤进行操作:

.parent {
  line-height: 1.2em;
}

.parent>div:not(:first-child)::before {
  content: "";
  float: left;
  width: 15px; /*your padding*/
  height: calc(1.2em * 1.5);
  background: #ddd;
}
<div class="parent">
  <div>0</div>
  <div>15</div>
  <div>30</div>
  <div>45</div>
  <div>60</div>
  <div>75</div>
</div>

答案 1 :(得分:1)

使用较少(但您必须设置元素数):

.parent (@indexstart,@index) when (@indexstart < @index ){
  div:nth-child(@{indexstart}){
    padding-left: (@indexstart - 1) * 15px;
  }
  .parent (@indexstart + 1,@index);
}
.parent (1,4);

See example