【问题标题】:Susy: How to extend content box to cover grid-padding as well?Susy:如何扩展内容框以覆盖网格填充?
【发布时间】:2012-06-28 18:00:36
【问题描述】:

我刚开始和苏西一起玩。我有一个 12 列网格,上面有网格填充。现在我希望我的页面标题跨越整个网格,包括网格填充。我现在正在做的是计算整体宽度,然后在标题上设置负边距。这对我来说感觉相当 hacky... 有更清洁的方法吗?

$total-columns  : 12;
$column-width   : 3.5em;
$gutter-width   : 1.25em;
$grid-padding   : 2em;

$total-width: ( $total-columns * ($column-width + $gutter-width) ) + ( 2 * $grid-padding ) - $gutter-width;

header {
    height: 150px;
    width: $total-width;
    margin-left: -$grid-padding;
}

【问题讨论】:

    标签: css compass-sass susy-compass


    【解决方案1】:

    您有两个不错的选择。一个是您所拥有的简化版本。由于块元素默认为 100% 宽度,因此您可以简单地消除宽度设置(以及所有那些 hacky 数学)。

    header {
        height: 150px;
        margin: 0 0 - $grid-padding;
    }
    

    您的另一个选择是在页面上使用多个容器。这需要更改标记,但有时它是一种效果很好的简化。如果您将标头移到当前容器之外,并将其声明为自己的容器,则可以解决问题。

    (附带说明:如果您确实需要全宽,您可以简单地使用columns-width() 函数(用于内部宽度,无填充)或container-outer-width() 用于包括填充在内的全宽。)

    更新:

    我一直在使用这个 mixin,在我需要的任何地方应用 bleed:

    @mixin bleed($padding: $grid-padding, $sides: left right) {
      @if $sides == 'all' {
        margin: - $padding;
        padding: $padding;
      } @else {
        @each $side in $sides {
          margin-#{$side}: - $padding;
          padding-#{$side}: $padding;
        }
      }
    }
    

    一些例子:

    #header { @include bleed; }
    #nav { @include bleed($sides: left); }
    #main { @include bleed($sides: right); }
    #footer { @include bleed(space(3)); }
    

    【讨论】:

    • 感谢您的回答。所以基本上我做了正确的事情,因为 container-outer-width() 做了几乎相同的计算。我在整个页面中有一些元素需要全宽,因此容器解决方案在这里不是选项,但如果适用的话,我猜这将是最干净的。省略宽度,但将容器的右侧填充留空。
    • 负的右边距应该可以很好地处理右边的填充。 container-outer-width 的问题在于它不是基于百分比的,而网格的其余部分是基于百分比的。我会避免在 Susy 网格内设置固定宽度。
    • @EricMeyer 我尝试使用它来让我的网格元素左右流血,但它只将整个容器向左移动。我使用了#top-content { @include span-columns(24,24); @include border-radius($radius); @include bleed; background-color: #fff; margin-top: 10px; height: 300px; },它向左移动了框。
    • @EricMeyer 实际上,我正在使用新的边框框包含,这就是原因。删除了它,现在它可以正常工作了,至少在 webkit 中。这种边距混合在 IE (7+) 中是否可以正常工作?
    • Bleed mixin 现在在 Susy 中:susy.oddbird.net/guides/reference/#ref-bleed
    猜你喜欢
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多