我正在尝试使用CSS网格和flexbox创建布局,并且遇到了问题。
外部布局是使用网格定义的,并且包含使用flex布局其内容的小部件。它们的内容可以是更多的网格。
我不知道如何在不折叠其网格内容的情况下在(flex)小部件上设置最小高度。我也不明白为什么会这样!也许是Chrome的错误,因为我无法在Firefox中重现它?
这是一个JSFiddle,可以显示我的意思:https://jsfiddle.net/bom7r0sy/14/
* {
box-sizing: border-box;
}
html, body, .wrapper {
height: 100%;
width: 100%;
overflow: hidden;
}
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
grid-gap: 2rem;
padding: 2rem;
}
.flex {
display: flex;
flex-direction: column;
flex: 1 1 0;
}
.title {
flex: 0 0 auto;
}
.grid {
flex: 1 1 0;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 1fr;
}
.a, .b, .c, .d {
display: flex;
padding: 1rem;
}
.a {
background: red;
}
.b {
background: green;
}
.c {
background: blue;
}
.d {
background: yellow;
}
.min-height {
min-height: 1000px;
}
<div class="wrapper">
<div class="flex">
<div class="grid">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
</div>
<div class="title">Another title</div>
</div>
<div class="flex min-height">
<div class="grid">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
</div>
<div class="title">Another title</div>
</div>
</div>
两个flex-widgets中的一个具有最小高度。这导致其网格崩溃。我希望网格仍然占据尽可能多的小部件。
以下是Chrome(已损坏?)和Firefox中的屏幕截图: