Less 基于同级计数设置元素的样式

Less 基于同级计数设置元素的样式,less,Less,我有一个小混音(由Lea Verou提供): 我想传递一个max items(8)变量,并在此基础上创建下面带有循环的规则集。所以我不必为每个子元素(1,2,3,4,…)重复代码 &:first-child{width:100%/@numberOfItems}对所有元素都有效吗?不。子元素的数量可以是任何东西。我们事先不知道将在标记中生成多少子元素。@Blix:Less不知道将在标记中出现多少元素。你要么在编译过程中静态地传递一个最大期望值,要么在客户端使用编译,这是Less网站严格不推荐的。好

我有一个小混音(由Lea Verou提供):
我想传递一个max items(8)变量,并在此基础上创建下面带有循环的规则集。所以我不必为每个子元素(1,2,3,4,…)重复代码



&:first-child{width:100%/@numberOfItems}
对所有元素都有效吗?不。子元素的数量可以是任何东西。我们事先不知道将在标记中生成多少子元素。@Blix:Less不知道将在标记中出现多少元素。你要么在编译过程中静态地传递一个最大期望值,要么在客户端使用编译,这是Less网站严格不推荐的。好吧,假设最大期望值是8。那么到目前为止你尝试了什么?对我们来说,为您编写代码并不是什么大不了的事,但这不是SO的目的。(只需阅读并根据您的代码片段进行修改即可)&:first-child{width:100%/@numberOfItems}对所有元素都有效吗?不,子元素的数量可以是任何元素。我们事先不知道将在标记中生成多少子元素。@Blix:Less不知道将在标记中出现多少元素。你要么在编译过程中静态地传递一个最大期望值,要么在客户端使用编译,这是Less网站严格不推荐的。好吧,假设最大期望值是8。那么到目前为止你尝试了什么?对我们来说,为您编写代码并不是什么大不了的事,但这不是SO的目的。(只需阅读并根据您的代码片段进行修改即可)&:first-child{width:100%/@numberOfItems}对所有元素都有效吗?不,子元素的数量可以是任何元素。我们事先不知道将在标记中生成多少子元素。@Blix:Less不知道将在标记中出现多少元素。你要么在编译过程中静态地传递一个最大期望值,要么在客户端使用编译,这是Less网站严格不推荐的。好吧,假设最大期望值是8。那么到目前为止你尝试了什么?对我们来说,为您编写代码并不是什么大不了的事,但这不是SO的目的。(只需阅读并根据您的代码片段进行修改即可)&:first-child{width:100%/@numberOfItems}对所有元素都有效吗?不,子元素的数量可以是任何元素。我们事先不知道将在标记中生成多少子元素。@Blix:Less不知道将在标记中出现多少元素。你要么在编译过程中静态地传递一个最大期望值,要么在客户端使用编译,这是Less网站严格不推荐的。好吧,假设最大期望值是8。那么到目前为止你尝试了什么?对我们来说,为您编写代码并不是什么大不了的事,但这不是SO的目的。(只需根据您的代码片段阅读并改编即可)。
.list-elements-count-undefined-width() {
  /* one item */
  &:first-child:nth-last-child(1) {
    width: 100%;
  }

  /* two items */
  &:first-child:nth-last-child(2),
  &:first-child:nth-last-child(2) ~ li {
    width: 50%;
  }

  /* three items */
  &:first-child:nth-last-child(3),
  &:first-child:nth-last-child(3) ~ li {
    width: (100% / 3);
  }

  /* four items */
  &:first-child:nth-last-child(4),
  &:first-child:nth-last-child(4) ~ li {
    width: 25%;
  }

  /* five items */
  &:first-child:nth-last-child(5),
  &:first-child:nth-last-child(5) ~ li {
    width: 20%;
  }

  /* six items */
  &:first-child:nth-last-child(6),
  &:first-child:nth-last-child(6) ~ li {
    width: (100% / 6);
  }
} 
.list-elements-count-undefined-width(@i) when (@i > 0) {
  .list-elements-count-undefined-width((@i - 1));
  &:first-child:nth-last-child(@{i}),
  &:first-child:nth-last-child(@{i}) ~ li{
    width: (100% / @i);
  }
}
.list-elements-count-undefined-width(8);