使用less的loop(循环)方法根据类名生成元素

less是一个功能强大的css超集,可以方便我们进行css代码的书写,less具有很多现代语言的特性,而不是简单的标记语言,包括分支和循环,这里我们使用循环来进行元素的自动化生成。
下面的代码需要一些less知识:less中文网
有时我们需要生成这样一个元素:

<div class="item introduction"> 
    <div class="split-intro intro-1"></div>
    <div class="split-intro intro-2"></div>
    <div class="split-intro intro-3"></div>
    <div class="split-intro intro-4"></div>
 </div>

虽然这里可以使用ul
来生成一个列表,但是有些时候这些元素里面会放置一些其他的div
所以这里就暂时不用列表了。 我们现在需要对这4个嵌套的div
元素添加各自的背景图片。如果在原生的css中,我们可能会这样写:

.introduction .intro-1 { background-image: url("######.jpg");}
.introduction .intro-2 { background-image: url("######.jpg");}
.introduction .intro-3 { background-image: url("######.jpg");}
.introduction .intro-4 { background-image: url("######.jpg");}```

这里需要手动指定这四个元素的背景图片,在元素较少的时候,或者是页面不需要修改的时候这样做似乎没什么问题,但是我们在修改的时候需要一个一个修改这些元素背景图片的url,并且如果是很多个元素的话就很麻烦。这里可以使用less的循环来实现简单的设置。

//定义
.intro-loop(@n, @i:1) when (@i <= @n) {
.intro-@{i} {
img { background-image: url("../images/intro-@{i}.jpg"); }
}
.intro-loop(@n, (@i + 1));
}
//调用
.introduction { .intro-loop(4);}
//下面是less官方文档给的循环实例,其实实际上这就是递归调用.
loop(@counter) when (@counter > 0) {
.loop((@counter - 1));
width: (10px + @counter);
}```

这样就可以很快的修改图片路径,或者增添新的元素进去了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 没坐过飞机?坐飞机误点?不用怕,以下几点要牢记: 到机场。 你要注意时间,因为航空公司规定航班起飞前30分钟停止办...
    策划人曾宣潭阅读 1,105评论 1 0
  • 八岁前,我们家住的是土坯房,这种房子是用黄泥土混着麦秸草用土坯模子做成土坯,晒干了以后磊墙,用圆木做梁,芦苇捆扎成...
    明O亮阅读 2,990评论 5 2
  • 1、使用Xshell登录服务器 2、更新源及系统 yum update yum upgrade -y 3、安装VN...
    来智慧阅读 7,276评论 0 1
  • 对前端知识感兴趣的同学,请移步前端经验收集器[https://www.jianshu.com/p/c1e3b96c...
    brandonxiang阅读 8,668评论 0 5