gpt4 book ai didi

css - Chrome 中高度为 1fr 的单行网格未填充高度

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:28 25 4
gpt4 key购买 nike

我在 Flexbox 列中有一个 CSS 网格,网格有 flex-grow: 1

在 Chrome 中,网格会扩展以填充可用空间,但其内容不会,即使网格上有 align-content: stretch 也是如此。在 Firefox 和 Edge 中,内容会根据需要扩展以填充网格的高度。

Here's a pen that reproduces the problem ,以及它在不同浏览器中的外观图像。这是 Chrome 的错误吗?如果是,有人可以建议一个简单的解决方法吗?

Chrome

Pen in chrome, showing the bug

火狐

Pen in firefox, showing desired behaviour

边缘

Pen in edge, showing desired behaviour

#wrapper {
display: flex;
flex-direction: column;
height: 15rem;
background-color: #aaa;
}

#grid {
flex-grow: 1;
display: grid;
background-color: #ccf;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
align-content: stretch; /* "end" correctly puts the row to the bottom */
}

#left {
background-color: #fcc;
}

#right {
background-color: #cfc;
}
<div id="wrapper">
<div id="top">not in grid</div>

<div id="grid">
<div id="left">left</div>
<div id="right">right</div>
</div>
</div>

最佳答案

Is this a bug with Chrome, and if so, can anyone suggest a straightforward workaround?

这看起来像是 Chrome 中的错误。但我不能肯定地说。

这是发生了什么:

  • 您将 flex 元素网格容器设置为使用 flex-grow: 1
  • 消耗所有可用高度
  • 因为您只定义了flex-grow 属性,其他两个flexibility propertiesflex-shrinkflex-basis – 保持默认值。
  • flex-shrink 的默认值是1,与这个问题无关。
  • flex-basis 的默认值是auto这是问题的根源
  • 如果您将 flex-basis: 0 添加到您的代码中,该元素也会在 Chrome 中占据全高。

revised codepen

#wrapper {
display: flex;
flex-direction: column;
height: 15rem;
background-color: #aaa;
}

#grid {
/* flex-grow: 1; */
flex: 1; /* fg:1, fs:1, fb:0 */
display: grid;
background-color: #ccf;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr;
}

#left { background-color: #fcc; }
#right { background-color: #cfc; }
<div id="wrapper">
<div id="top">not in grid</div>
<div id="grid">
<div id="left">left</div>
<div id="right">right</div>
</div>
</div>

关于css - Chrome 中高度为 1fr 的单行网格未填充高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com