让CSS网格行填充可用空间

我想要

我正在使用CSS格架,我想我的最后一排CSS网使用全部剩余空间在包装,但在同一时间,我希望所有其他行遵循最小化内容战略

包装的CSS:

.grid {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 100px auto;
  grid-auto-rows: min-content;
  row-gap: 7px;
  justify-items: start;
  align-items: start;
}

我最初的实现方式是margin-top: auto将按钮简单地添加到按钮,就像使用flexbox一样。我也尝试过grid-auto-rows: auto为网格包装器设置,但是它也不起作用。

左:现在的样子|  右:所需结果

编辑:示例代码:https : //jsfiddle.net/xt139o2g/(我希望按钮出现在包装div的右下角)

.wrapper {
  border: 1px solid blue;
  height: 300px;
  width: 250px;
  padding: 10px;
}

.grid {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 100px auto;
  grid-auto-rows: min-content;
  row-gap: 7px;
  justify-items: start;
  align-items: start;
}

.button {
  grid-column: 1 / -1;
  justify-self: end;
  align-self: end;
}
<div class="wrapper">
  <div class="grid">
    <div>
      R1C1
    </div>
    <div>
      R1C2
    </div>
    <div>
      R2C1
    </div>
    <div>
      R2C2
    </div>
    <div class="button">
      Button
    </div>
  </div>
</div>

提前致谢!

丹尼尔·奈特斯

您可以使用该repeat函数将前两行设置为min-content:

grid-template-rows: repeat(2, min-content);

然后,使用display: flex.button和使用它的内容转移到右下justify-contentalign-items

display: flex;
align-items: flex-end;
justify-content: flex-end;

演示:(我添加了边框来演示间距。)

.wrapper {
  border: 1px solid blue;
  height: 300px;
  width: 250px;
  padding: 10px;
}

.grid {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 100px auto;
  grid-template-rows: repeat(2, min-content);
  row-gap: 7px;
}

.grid>div {
  width: 100%;
  height: 100%;
  border: 1px solid;
}

.button {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  grid-column: 1 / -1;
}
<div class="wrapper">
  <div class="grid">
    <div>
      R1C1
    </div>
    <div>
      R1C2
    </div>
    <div>
      R2C1
    </div>
    <div>
      R2C2
    </div>
    <div class="button">
      Button
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章