使用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);
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值