代码之家  ›  专栏  ›  技术社区  ›  gfpacheco

如何使CSS网格最后一行占用剩余空间[重复]

  •  -1
  • gfpacheco  · 技术社区  · 7 年前

    我有一个具有可变行数的网格,我希望最后一个网格是1fr height。

    像这样的:

    有什么办法吗? 3答

    我有一个行数可变的网格,我希望最后一个是1fr高度。

    像这样:

    enter image description here

    有什么办法吗?

    1 回复  |  直到 7 年前
        1
  •  1
  •   service-paradis    7 年前

    你可以使用flex。

    TE父容器应该 display: flex; . 我们想垂直使用它,所以我们将像这样改变弯曲方向 flex-direction: column; .

    在这之后,我们将使用财产 flex-shrink: 1; 为每个孩子。这样,它将只占用所需/指定的空间。最后一个孩子的诀窍是使用财产 flex-grow: 1; 所以它将占用可用空间。

    请参见下面的代码段:

    html, body {
      height: 100%;
    }
    
    .fill-height {
      height: 100%;
      display: flex;
      flex-direction: column;
    }
    
    .fill-height > div {
      border: 1px solid red;
      min-height:2em;
      flex-shrink: 1;
    }
    
    .fill-height > div:last-child {
      flex-grow: 1;
    }
    <section class="fill-height">
      <div>
        row 1 (shrink)
      </div>
      <div>
        row 2 (shrink)
      </div>
      <div>
        row 3 (grow)
      </div>
    </section>

    链接到 JsFiddle