【问题标题】:Bourbon Neat grid-push not working as expected?Bourbon Neat grid-push 没有按预期工作?
【发布时间】:2017-11-01 19:51:57
【问题描述】:

我有一个非常简单的问题,似乎很难解决。我想坚持使用正常的标准 12 列整齐网格,但我希望两个 .homeSplit div 各占 5 列。我希望第二个(.insights)在中间获得 1col 的空间,所以我给了它一个 grid-push(1)。当涉及到移动尺寸时,我希望这些 div 中的每一个都占据完整的 12 列并堆叠在一起。问题是,一旦我缩小到移动尺寸,我用 grid-push(1) 分配的 1col 空间仍然存在,我不知道如何摆脱它。

CSS/SASS:

.homeSplit {
    position: relative;
    @include grid-column(5);

&.news {

    .post {
        margin-bottom: 26px;
    }
}
&.insights {
    @include grid-push(1);
    padding-left: 30px;
    z-index: 999;

    .post {
        margin-bottom: 26px;
    }
}
}

    @media only screen and (max-width: 959px) {
    .homeSplit {
        @include grid-column(12);

        &.insights {
            @include grid-push(0);
        }
    }

}

我也尝试过 grid-push(-1) ,但它太过分了。我是否误解了如何使用 Neat?把我的头发拉过来。

【问题讨论】:

标签: sass bourbon neat


【解决方案1】:

这里最好的方法是使用grid-media() mixin 来创建一系列网格。这是一个看起来像的示例(删除了一些无关代码。

此外,默认情况下,在媒体查询中,整洁的 min-width 优于 max-width。根据您的布局,min-width 让事情变得更容易。

$my-desktop-grid: (
  media: 959px,
);

.homeSplit {
    @include grid-column(); // default's to 12 here

    @include grid-media($my-desktop-grid) {
        @include grid-column(5);

        &.insights {
            @include grid-push(1);
        }
    }
}

我创建了一个 codepen 作为示例,因此您可以看到它的实际效果。

https://codepen.io/whmii/pen/aVvqma

【讨论】:

【解决方案2】:

选项1:嵌套错误。

在查看上面的示例时,@media 声明嵌套在 .homeSplit 块中,但随后 .homeSplit 再次在 @media 中声明。但是,您上面的代码可能无法运行并且会出错,因此我假设在将其复制并粘贴到您的问题中时,翻译中丢失了一些内容。

选项 2:grid-push 想要 false 或者只是为空。

grid-push(0) 不是真正的东西,但在 sass 中 0 可能 == false 所以你可以尝试以下方法:

.homeSplit {
    position: relative;
    @include grid-column(5);

    &.news {

        .post {
            margin-bottom: 26px;
        }
    }
    &.insights {
        @include grid-push(1);
        padding-left: 30px;
        z-index: 999;

        .post {
            margin-bottom: 26px;
        }
    }

    @media only screen and (max-width: 959px) {
        @include grid-column(12);

        &.insights {
            @include grid-push(); // 'false' is the default here
        }
    }
}

注意:我还清理了底部的一些嵌套

我将添加第二个答案,说明如何使用 grid-media mixin。

【讨论】:

  • 抱歉,你是对的 - 这是一个糟糕的复制/粘贴。
  • 我试过你的“@include grid-push();”建议,它的功能仍然与(0)相同。这不是应该如何整洁/网格推送吗?
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
相关资源
最近更新 更多