微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我无法在我的 sass 项目中进行每个循环

如何解决我无法在我的 sass 项目中进行每个循环

我想创建自己的框架,比如 bootstrap。但是我遇到了一个问题。我创建了媒体查询部分,但我无法使用 Sass 技术进行循环。我想做一个循环,执行以下操作

@media (min-width: #{/*there is the first loop (576px,768px,992px ..)*/}) {
   .grid-col-#{/*this is loop two (i want to loop all sizes such (mid,xl,xxl))*/} {
       display: grid;
       grid-template-columns: repeat(#{/*i want here to make loop does take a lot of 
       numbers such as (1,2,3,4,5,6 ..) 
       of columns*/},minmax(0,1fr));
   }
}

这个想法是让一种媒体重复,直到它承载所有尺寸的屏幕,就像这样

@media (min-width: 557px) {
      .grid-col-sm-1 {
        display: grid;
        grid-template-columns: repeat(1 /*the number in the class*/,1fr))
       }
     .Grdi-col-sm-2 {
       display: grid;
       grid-template-columns: repeat(2,1fr))
     }
    }
@media (min-width: 768px) {
   .grid-col-md-1 {
      display: grid;
      grid-template-columns: repeat(1,1fr))
   }
   .grid-col-md-2 {
     display: grid;
     grid-template-columns: repeat(2,1fr))
   }
}

我希望我解释得很好。我想发展我的基本技能,仅此而已。

解决方法

你想要这样的东西:

$breakpoints : '575px','768px','992px','1200px';

@each $breakpoint in $breakpoints {
    @media (min-width: #{$breakpoint} ) {
        @for $i from 1 through 12 {
           .grid-col-#{$i} {
               display: grid;
               grid-template-columns: repeat( #{$i},minmax(0,1fr));
            }
        }
    }
}

这将输出:

@media (min-width: 575px) {
  .grid-col-1 {
    display: grid;
    grid-template-columns: repeat(1,1fr));
  }

  .grid-col-2 {
    display: grid;
    grid-template-columns: repeat(2,1fr));
  }

  .grid-col-3 {
    display: grid;
    grid-template-columns: repeat(3,1fr));
  }

  .grid-col-4 {
    display: grid;
    grid-template-columns: repeat(4,1fr));
  }

  .grid-col-5 {
    display: grid;
    grid-template-columns: repeat(5,1fr));
  }

  .grid-col-6 {
    display: grid;
    grid-template-columns: repeat(6,1fr));
  }

  .grid-col-7 {
    display: grid;
    grid-template-columns: repeat(7,1fr));
  }

  .grid-col-8 {
    display: grid;
    grid-template-columns: repeat(8,1fr));
  }

  .grid-col-9 {
    display: grid;
    grid-template-columns: repeat(9,1fr));
  }

  .grid-col-10 {
    display: grid;
    grid-template-columns: repeat(10,1fr));
  }

  .grid-col-11 {
    display: grid;
    grid-template-columns: repeat(11,1fr));
  }

  .grid-col-12 {
    display: grid;
    grid-template-columns: repeat(12,1fr));
  }
}
@media (min-width: 768px) {
  .grid-col-1 {
    display: grid;
    grid-template-columns: repeat(1,1fr));
  }
}
@media (min-width: 992px) {
  .grid-col-1 {
    display: grid;
    grid-template-columns: repeat(1,1fr));
  }
}
@media (min-width: 1200px) {
  .grid-col-1 {
    display: grid;
    grid-template-columns: repeat(1,1fr));
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。