小编典典

使网格项目跨度到最后一行/最后一列

html

当我不知道行数时,是否可以使网格项目从第一行到最后一行?

可以说我有以下HTML,其中的框数未知。

如何使.box第一个网格线到最后一个网格线的第三个跨度?

.container {

  display: grid;

  grid-template-columns: repeat(3, minmax(10rem, 1fr)) [last-col] 35%;

  grid-template-rows: auto [last-line];

}



.box {

  background-color: blue;

  padding: 20px;

  border: 1px solid red;

}



.box:nth-child(3) {

  background-color: yellow;

  grid-column: last-col / span 1;

  grid-row: 1 / last-line;

}


<div class="container">

  <div class="box"></div>

  <div class="box"></div>

  <div class="box">3</div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

</div>

阅读 268

收藏
2020-05-10

共1个答案

小编典典

您可以将grid-row-start添加到该框中的css,并将其设置为跨越一个非常大的数字。

.container {

  display: grid;

  grid-template-columns: repeat(3, minmax(10rem, 1fr)) [last-col] 35%;

  grid-template-rows: auto [last-line];

}



.box {

  background-color: blue;

  padding: 20px;

  border: 1px solid red;

}



.box:nth-child(3) {

  background-color: yellow;

  grid-column: last-col / span 1;

  grid-row: 1 / last-line;

  grid-row-start: span 9000;

}


<div class="container">

  <div class="box"></div>

  <div class="box"></div>

  <div class="box">3</div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

  <div class="box"></div>

</div>

编辑-免责声明:

这是非最佳解决方案,并非在所有浏览器中都有效,请当心!尽管这在某些浏览器(Chrome)中似乎可行,但其他浏览器(Firefox)会创建数量众多的荒谬行,从而导致问题。

2020-05-10