首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环的scss不能正确级联

循环的scss不能正确级联
EN

Stack Overflow用户
提问于 2022-11-01 10:53:00
回答 1查看 15关注 0票数 -1

我创建了这样一个for循环:

代码语言:javascript
复制
.hero {
  @for $i from 1 through 100 {
    &.aspect-ratio--#{$i} {
      @include aspect-ratio(16, $i);
    }

    &.aspect-ratio-sm--#{$i} {
      @include media-breakpoint-up(sm) {
        @include aspect-ratio(16, $i);
      }
    }

    &.aspect-ratio-md--#{$i} {
      @include media-breakpoint-up(md) {
        @include aspect-ratio(16, $i);
      }
    }

    &.aspect-ratio-lg--#{$i} {
      @include media-breakpoint-up(lg) {
        @include aspect-ratio(16, $i);
      }
    }

    &.aspect-ratio-xl--#{$i} {
      @include media-breakpoint-up(xl) {
        @include aspect-ratio(16, $i);
      }
    }
  }
}

当我创建一个元素时,如下所示:

代码语言:javascript
复制
<div class="hero aspect-ratio-md--6 aspect-ratio-sm--8 aspect-ratio--10"></div>

它不尊重我声明的类的顺序,所以当我在md和更高级别时,而不是使用纵横比-md-6,而是实际上使用了纵横比-10。就像这样:

有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 12:17:38

不知道为什么会被否决,但我想出来了。这是因为我的循环是如何工作的,它得到了8后6,所以这是优先考虑。我把我的循环改为:

代码语言:javascript
复制
$breakpoints: sm, md, lg, xl, xxl;

.hero {
  @each $breakpoint in $breakpoints {
    @for $i from 1 through 100 {
      &.aspect-ratio-#{$breakpoint}-#{$i} {
        @include media-breakpoint-up($breakpoint) {
          @include aspect-ratio(16, $i);
        }
      }
    }
  }
}

而且这起作用了。为什么?因为它首先查看断点,这意味着最后一个断点总是优先于第一个断点,然后循环从1到100并创建类,再一次,后面的数字优先于前面的数字(不需要,但是很好知道)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74274798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档