less中的循环
程序员文章站
2022-07-15 08:18:30
...
在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;
}
}
推荐阅读
-
【转载】C#中SqlConnection类的作用以及常用方法
-
iOS应用开发中UITableView的分割线的一些设置技巧
-
iOS中UIScrollerView的用法及基于AotoLayout的控件悬停
-
详解iOS App开发中UIViewController的loadView方法使用
-
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
-
iOS开发中使用UIScrollView实现无限循环的图片浏览器
-
Python3中编码与解码之Unicode与bytes的讲解
-
Python中的异常处理try/except/finally/raise用法分析
-
Python中类的创建和实例化操作示例
-
C语言实现线索二叉树的前中后创建和遍历详解