html - CSS 网格在 flexbox 中不会增长

标签 html css flexbox css-grid

我对 CSS Grid 的理解是它会增长以填充其父级,但是当父级的大小由 flexbox 控制时,这似乎无法正常工作。

this example ,我预计浅蓝色网格元素会增长以覆盖红色区域。如果网格是独立的,则此方法可以正常工作,但是一旦将其放入 flex 元素(即使使用 flex-grow: 1),它就根本不会增长;

这里发生了什么,有什么方法可以调整样式以符合我的预期?


代码:

布局

<div class="normal-grid">
  <div class="grid-item">Thing 1</div>
  <div class="grid-item">Thing 2</div>
</div>
<div class="flex">
  <div class="flex-grid">
    <div class="grid-item">Thing 1</div>
    <div class="grid-item">Thing 2</div>
  </div>
</div>

风格

.normal-grid {
  height: 100px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  background: red;
}

.flex {
  margin-top: 20px;
  height: 100px;
  display: flex;
  flex-direction: column;
}

.flex-grid {
  flex-grow: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  background: red;
}

.grid-item {
  background: lightblue;
}

最佳答案

只需保持方向(默认方向)即可获得拉伸(stretch)效果:

.normal-grid {
  height: 100px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  background: red;
}

.flex {
  margin-top: 20px;
  height: 100px;
  display: flex;
  /*flex-direction: column;*/
}

.flex-grid {
  flex-grow: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  background: red;
}

.grid-item {
  background: lightblue;
}
<div class="normal-grid">
  <div class="grid-item">Thing 1</div>
  <div class="grid-item">Thing 2</div>
</div>
<div class="flex">
  <div class="flex-grid">
    <div class="grid-item">Thing 1</div>
    <div class="grid-item">Thing 2</div>
  </div>
</div>

关于html - CSS 网格在 flexbox 中不会增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51974759/

相关文章:

javascript - setTimeout 问题

css - 表格宽度不是 100%

css - 指定 flexbox flex 元素的宽度 : width or basis?

HTML5 创建隐藏文本的字段,但可以复制/粘贴

html: iframe 缩放以适应除了顶行

javascript - 通过高度限制可编辑的div区域,在Javascript中模拟onkeyup事件

flexbox - React Native 样式表 : what does {flex:1} do?

html - 下拉在 JSFiddle 中工作但未出现在网站上

css - 如何隐藏滚动条并更改选择标签的宽度

html - jQuery Gridly插件修改