使CSS网格行的高度最大化以容纳其内容

问题描述 投票:0回答:1

如何使CSS网格行的高度根据其内容扩展到最大?

所以这会改变enter image description here

进入:enter image description here

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-column-gap: 20px;
  outline: 2px dashed red;
}

.panel-grid {
  background-color: #f0f0f0;
  outline: 1px solid blue;
  display: grid;
}

.row {
  background-color: #5879c5;
  text-align: center;
  font-weight: bold;
}

.row2 {
  background-color: #c5b07f;
  text-align: center;
  font-weight: bold;
}

.row3 {
  background-color: #e0ffef;
  text-align: center;
  font-weight: bold;
}
  <div class="grid">
    <div class="panel-grid">
      <div class="row"><div>1</div><div>1</div><div>1</div></div>
      <div class="row2"><div>2</div></div>
      <div class="row3"><div>3</div></div>
    </div>
    <div class="panel-grid">
      <div class="row"><div>1</div></div>
      <div class="row2"><div>2</div><div>2</div><div>2</div></div>
      <div class="row3"><div>3</div></div>
    </div>
    <div class="panel-grid">
      <div class="row"><div>1</div></div>
      <div class="row2"><div>2</div></div>
      <div class="row3"><div>3</div></div>
    </div>
  </div>
html css grid css-grid
1个回答
0
投票

我认为只有在浏览器支持display: contentsdisplay: subgrid的情况下才有可能。

同时,我认为您可以获得的最接近(不更改HTML)是容器中的equal height行。高度由每行中最高的项目设置。

.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-column-gap: 20px;
  outline: 2px dashed red;
}

.panel-grid {
  background-color: #f0f0f0;
  outline: 1px solid blue;
  display: grid;
  grid-auto-rows: 1fr; /* new */
}

.row {
  background-color: #5879c5;
  text-align: center;
  font-weight: bold;
}

.row2 {
  background-color: #c5b07f;
  text-align: center;
  font-weight: bold;
}

.row3 {
  background-color: #e0ffef;
  text-align: center;
  font-weight: bold;
}
<div class="grid">
  <div class="panel-grid">
    <div class="row">
      <div>1</div>
      <div>1</div>
      <div>1</div>
    </div>
    <div class="row2">
      <div>2</div>
    </div>
    <div class="row3">
      <div>3</div>
    </div>
  </div>
  <div class="panel-grid">
    <div class="row">
      <div>1</div>
    </div>
    <div class="row2">
      <div>2</div>
      <div>2</div>
      <div>2</div>
    </div>
    <div class="row3">
      <div>3</div>
    </div>
  </div>
  <div class="panel-grid">
    <div class="row">
      <div>1</div>
    </div>
    <div class="row2">
      <div>2</div>
    </div>
    <div class="row3">
      <div>3</div>
    </div>
  </div>
</div>

更多详细信息:

© www.soinside.com 2019 - 2024. All rights reserved.