为什么在此flex元素上设置最小高度会导致其网格崩溃?

时间:2018-07-20 14:43:26

标签: css css3 layout flexbox css-grid

我正在尝试使用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中的屏幕截图:

Chrome Chrome

Firefox Firefox

0 个答案:

没有答案