gpt4 book ai didi

Chrome 和 Firefox 中的 CSS 网格行为不同

转载 作者:行者123 更新时间:2023-12-02 10:46:57 28 4
gpt4 key购买 nike

我有一个 2 列 3 行的 CSS 网格。由于 Angular ngif 子句,第三行内容并不总是存在。图像出现在跨越 3 行的第一列中。话虽如此,我在 Chrome(80.0.3987.87,这是我发布的最新稳定版本)和 Firefox 中得到了 2 个不同的结果。

有没有办法控制行,使其表现得像在 Firefox 中一样,即当图像高度大于前 2 行高度之和时,第三行会增长。

.grid {
width:400px;
display:grid;
grid-template-columns: 40px 1fr;
grid-template-rows: minmax(0, auto) minmax(0, auto) minmax(0, 1fr);
}

.image {
width:40px;
height:100px;
grid-column:1;
grid-row:1 / span 3;
background-color: #f00;
}

.text1 {
grid-column:2;
grid-row:1;
}

.text2 {
grid-column:2;
grid-row:2;
}
<div class="grid">
<div class="image"></div>
<div class="text1">Text 1</div>
<div class="text2">Text 2</div>
</div>

这是codepen您可以在 Chrome 和 Firefox 中查看。

这是显示差异的图像:

enter image description here

如您所见,Chrome 同等地增加了第 1 行和第 2 行的高度(第 3 行保持为 0)。 Firefox 仅增加 row2 的高度,即最后一个包含内容的可见行。

请注意,我尝试将 grid-template-rows 设置为“minmax(0, auto) minmax(0, auto) 1fr”,但是第 3 行将具有一个奇怪的高度,使网格高度大于其内容。

更新:啊!能够在以前的 Chrome 版本(79)上尝试,这次我得到了与 Firefox 相同的结果。所以看来80改变了它。这里有人可以证实吗?

最佳答案

您可以像下面这样更新您的代码。它在 Chrome 80 和 Firefox 中似乎工作相同。值得注意的是,1fr 等于 minmax(auto, 1fr),它确实与 minmax(0,1fr) 不同,但仍然不同。不知道到底是什么让两者表现不同。

.grid {
width:400px;
display:grid;
grid-template-columns: 40px 1fr;
grid-template-rows: auto auto 1fr;
}

.image {
width:40px;
height:100px;
grid-column:1;
grid-row:1 / span 3;
background-color: #f00;
}

.text1 {
grid-column:2;
grid-row:1;
}

.text2 {
grid-column:2;
grid-row:2;
}
<div class="grid">
<div class="image"></div>
<div class="text1">Text 1</div>
<div class="text2">Text 2</div>
</div>

关于Chrome 和 Firefox 中的 CSS 网格行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60079293/

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