SASS和媒体查询聚合

SASS和媒体查询聚合,sass,Sass,使用Sass,我有以下混合功能: @mixin ss($property, $value, $value-smallscreen) { #{$property}: $value; @media screen and (max-height: $smallscreen-maxheight) { #{$property}: $value-smallscreen; } } .Header { @include ss('height', $RowHeight, $RowHeig

使用Sass,我有以下混合功能:

@mixin ss($property, $value, $value-smallscreen) {
  #{$property}: $value;
  @media screen and (max-height: $smallscreen-maxheight) {
    #{$property}: $value-smallscreen;
  }
}

.Header
{
  @include ss('height', $RowHeight, $RowHeight-smallscreen);
  @include ss('font-size', $HeaderFontsize, $HeaderFontsize-smallscreen);
}
我遇到的“问题”是,这会产生两个@媒体声明。也就是说,它生成以下CSS:

.Header {
  height: 41px;
  font-size: 11pt; }
  @media screen and (max-height: 768px) {
    .Header {
      height: 35px; } }
  @media screen and (max-height: 768px) {
    .Header {
      font-size: 9pt; } }
我想知道的是,有没有办法做到这两点:

  • 将定义放在一起,以确保为大屏幕和小屏幕添加样式,以及
  • 只有一个“@media”部分

我当前的一个项目需要这种方法来处理SASS结构,我的解决方案是使用CSS后处理器查看CSS输出,就像在SASS/Compass输出CSS文件时查看CSS文件一样


这允许实时媒体查询打包和其他优化。

可能重复@cimmanon我不认为这是重复的,因为我知道有多个媒体查询。答案是“不要创建多个”。我的问题是“有没有办法不创建多个,也不复制SASS中的定义”。谢谢。我将研究这种后处理阶段。我希望避免它,但也许这是最好的解决办法。