如何制作伸展儿童并尊重最小高度的CSS网格:0?

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

我有简单的CSS网格。我希望伸展孩子来填充可用的内容,但如果任何一个孩子有height: 0,也要尊重它。现在它也为height: 0的孩子“预留”了空间。这是显示我的问题的小提琴:https://jsfiddle.net/f3r0b5e9/7/

.wrapper {
  height: 300px;
  width: 200px;
  border: 1px solid red;
  display: grid;
  align-content: stretch;
  grid-template-rows: auto;
}

.child {
  width: 100%;
  border: 1px solid blue;
  background: #cad5e8;
}

.child.one {
  height: 0;
  min-height: 0;
  max-height: 0;
}
<div class="wrapper">
  <div class="child one">
  </div>
  <div class="child two">
  </div>
  <div class="child three">
  </div>
</div>

这就是我想要实现的目标:http://prntscr.com/kqcry4

注意:我知道如何使用flexbox :)

谢谢!

html css css3 css-grid
1个回答
6
投票

而不是auto,使用min-contentmax-content作为grid-template-rows的值:

.wrapper {
  height: 300px;
  width: 200px;
  border: 1px solid red;
  display: grid;
  align-content: stretch;
  grid-template-rows: min-content;
}

.child {
  width: 100%;
  border: 1px solid blue;
  background: #cad5e8;
}

.child.one {
  height: 0;
  min-height: 0;
  max-height: 0;
}
<div class="wrapper">
  <div class="child one">
  </div>
  <div class="child two">
  </div>
  <div class="child three">
  </div>
</div>
© www.soinside.com 2019 - 2024. All rights reserved.