less中的循环

在less中使用媒体查询做rem布局,刚开始是这样写的

.Mixin(){
  @media(min-width: 720px){
    html{
      font-size: 720px/750px*100px;
    }
  }
  @media(min-width: 750px){
    html{
      font-size: 750px/750px*100px;
    }
  }

通常我们需要适配的尺寸肯定不会是两三个,过多的话一个个去写很麻烦,这时候需要遍历数组 但是less没有for循环的语法, 不过他有类似的循环
首先要定义索引index, 循环的条件是当index < 数组的长度 , 迭代条件 index++

//当前主流的设备尺寸
@deviceList: 750px ,720px, 640px, 540px,480px, 424px, 414px, 400px, 384px, 375px, 320px;

//设计稿的尺寸
@psdWidth: 750px;

//预设的基准值
@baseFontSize: 100px;

//设置数组的长度
@len:length(@deviceList);

遍历

.Mixin(@index) when (@index > 0){
  // 根据index获取对应的某个值 extract(数组名, 对应的序号)
  @media(min-width: extract(@deviceList, @index)){
    html{
      font-size: extract(@deviceList, @index)/@psdWidth*@baseFontSize;
    }
  }
  .Mixin(@index - 1);
}

调用

.Mixin(@len);

转化的结果

@media (min-width: 320px) {
  html {
    font-size: 42.66666667px;
  }
}
@media (min-width: 375px) {
  html {
    font-size: 50px;
  }
}
@media (min-width: 384px) {
  html {
    font-size: 51.2px;
  }
}
@media (min-width: 400px) {
  html {
    font-size: 53.33333333px;
  }
}
@media (min-width: 414px) {
  html {
    font-size: 55.2px;
  }
}
@media (min-width: 424px) {
  html {
    font-size: 56.53333333px;
  }
}
@media (min-width: 480px) {
  html {
    font-size: 64px;
  }
}
@media (min-width: 540px) {
  html {
    font-size: 72px;
  }
}
@media (min-width: 640px) {
  html {
    font-size: 85.33333333px;
  }
}
@media (min-width: 720px) {
  html {
    font-size: 96px;
  }
}
@media (min-width: 750px) {
  html {
    font-size: 100px;
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值