less循环设置媒体查询

最近在学习媒体查询时遇到设置多个媒体宽度的问题,一个一个写的话太浪费时间。所以想用循环解决。

代码如下

// 设置媒体查询
@no: 15; //屏幕划分份数
@fit: 320px, 360px, 375px, 384px, 400px, 414px, 424px, 480px, 540px, 720px, 750px;

// 这里使用递归调用完成的循环
.loop(@index) when (@index <=length(@fit)) {
    @media screen and (min-width: extract(@fit, @index)) {
        html {
            font-size: (extract(@fit, @index) / @no);
        }
    }

    .loop(@index+1);
}
//调用
.loop(1);

生成的css跟直接写没有差别

@media screen and (min-width: 320px) {
  html {
    font-size: 21.33333333px;
  }
}
@media screen and (min-width: 360px) {
  html {
    font-size: 24px;
  }
}
@media screen and (min-width: 375px) {
  html {
    font-size: 25px;
  }
}
@media screen and (min-width: 384px) {
  html {
    font-size: 25.6px;
  }
}
@media screen and (min-width: 400px) {
  html {
    font-size: 26.66666667px;
  }
}
@media screen and (min-width: 414px) {
  html {
    font-size: 27.6px;
  }
}
@media screen and (min-width: 424px) {
  html {
    font-size: 28.26666667px;
  }
}
@media screen and (min-width: 480px) {
  html {
    font-size: 32px;
  }
}
@media screen and (min-width: 540px) {
  html {
    font-size: 36px;
  }
}
@media screen and (min-width: 720px) {
  html {
    font-size: 48px;
  }
}
@media screen and (min-width: 750px) {
  html {
    font-size: 50px;
  }
}

posted @ 2022-09-04 10:28  千本嘤嘤嘤  阅读(91)  评论(0)    收藏  举报