【问题标题】:Susy grid - any (easy?) way to make 'columns' the same height?Susy grid - 任何(简单?)方法可以使“列”具有相同的高度?
【发布时间】:2012-08-19 11:17:21
【问题描述】:

用 Susy/sass/haml 等弄湿我的脚(使用调整后的中间人 - 来自 master 分支的最新 susy)

在 grid.css.scss 中有这个

@import 'susy';

$total-columns  : 8;
$column-width   : 4em;
$gutter-width   : 0em;
$grid-padding   : $gutter-width;

$break-max      : 12;

$container-style: magic;

// Container
.page {
  @include container($total-columns, $break-max);
}

// Layout

.header {
  @include at-breakpoint($break-max) {
    @include pad(1,1);
  }
}

.pagenav {
  clear: both;
  @include at-breakpoint($break-max) {
    @include pad(1,1);
  }
}

.main {
  clear: both; 
  .main-left {  
    @include span-columns($total-columns omega);
    @include at-breakpoint(10) {
      @include span-columns(7);  
    } 
  }
  .main-right {  
    @include span-columns($total-columns omega);  
    @include at-breakpoint(10) {
      @include span-columns(3 omega);  
    }        
  }
  @include at-breakpoint($break-max) {
    @include pad(1,1);
  }
}

.footer {
  clear: both;
  @include at-breakpoint($break-max) {
    @include pad(1,1);
  }
}

这个sn-p来自site.css.scss

.main {
  background-color: #eee;
}

.main-left {
  background-color: #fff;
}

.main-right {
  background-color: #eee;
}

.body 背景是黑色的...

现在,当 main-left 中的内容大于 main-right 时,我会在右下角看到一个黑色方块... 无论如何,我都可以做到右下角#eee i.o.w。 main-right 与 main-left 具有相同的高度(动态) - 或者具有要应用的 .main 背景...???

谢谢

彼得

PS 有更多学分的人应该在 stackoverflow 中创建一个 Susy 标签...

【问题讨论】:

  • 等高列确实是 Susy 的一个独特问题。 CSS 中没有完美的答案,但有几种解决方法,包括使用背景来伪造它,使用表格显示等。任何选项都适用于 Susy。
  • 嗨,彼得,欢迎来到 SO :) 最好接受一个答案,让其他有类似问题的人知道这解决了您的问题(更不用说您获得了徽章!) .

标签: sass compass-sass susy-compass


【解决方案1】:
#main {
  display: table;
  background-color: #eee;
}
.main-left,
.main-right{
  display: table-cell;
  vertical-align: top;
}
.main-left {
  background-color: #fff;
}

.main-right {
  background-color: #eee;
}

这将使两个 div 相互匹配,就好像它们是相邻的表格单元格一样。 别担心,这不符合使用表格进行布局的条件,对于列来说很酷,而且不会给我带来任何问题。 当然,糟糕的旧浏览器不支持它,但你可以使用像 ie9.js 这样的 .js 脚本在必要时对其进行修补。

【讨论】:

  • 我查看了 display: table;并查看它的用途,但 @include pad(1,1);是什么导致了这个问题......我不希望那些'填充列呈现.main的颜色,那些必须是黑色......所以它真的是.main-right必须伸展......或者 .main-left 在奇怪的情况下左边的内容比右边的少......
  • 如果您需要额外添加到边距而不是填充,您可以使用squish(1,1) 而不是pad(1,1)
  • 好的,明白了...结合了两种显示:表格单元格和挤压。非常感谢你。 [埃里克,苏西看起来真的很棒:-)]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
相关资源
最近更新 更多