你在哪里嵌套你的 Sass 断点?

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费信用额度!

我喜欢嵌套我的 @media 查询断点。对我来说,这可能是 Sass 最重要的功能。也许我 选择一种方法 并像这样操作

.element {
  display: grid;
  grid-template-columns: 100px 1fr;
  @include breakpoint(baby-bear) {
    display: block;
  }
}

这足够简单。但是,如果我的元素有几个子元素,并且断点也影响它们呢?有不同的方法,我从来都不确定我应该使用哪一种。

我可以为每个子元素复制断点

.parent {

    @include breakpoint(desktop) {
    }

    .child {
        @include breakpoint(desktop) {
        }
    }

   .child-2 {
        @include breakpoint(desktop) {
        }
    }

}

编译后的 CSS 类似于以下内容

@media screen and (min-width: 700px) {
  .parent {
  }
}
@media screen and (min-width: 700px) {
  .parent .child {
  }
}
@media screen and (min-width: 700px) {
  .parent .child-2 {
  }
}

或者,我可以在第一个嵌套断点下复制子元素

.parent {

    @include breakpoint(desktop) {

       .child {
       }

       .child-2 {
       } 

    }

    .child {
    }

   .child-2 {
    }

}

这将导致

@media screen and (min-width: 700px) {
  .parent .child {
  }
  .parent .child-2 {
  }
}
.parent .child {
}
.parent .child-2 {
}

或者我可以结合两种方法。由于存在重复,因此这两种方法都不太理想,但我不确定这里是否有完美的答案。我更倾向于复制媒体查询,因为它似乎比复制选择器更不容易出错。