How max-content and min-content are evaluated for a row aside to a big grid-area in CSS grid?(在css网格中,最大内容和最小内容在一个大的网格区域之外是如何计算的?)
问题描述
根据MDN单据(https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows):
最小内容
是表示占据网格轨道的网格项的最大最小内容贡献的关键字。
因此,在此示例中:
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">.grid {
display: grid;
grid-template-columns: 1fr 3fr;
grid-template-rows: max-content max-content max-content min-content;
grid-template-areas:
"one aside"
"two aside"
"three aside"
"four aside"
}
.one {
background: red;
grid-area: one;
}
.two {
background: green;
grid-area: two;
}
.three {
background: blue;
grid-area: three;
}
.four {
background: yellow;
grid-area: four;
}
.aside {
background: grey;
grid-area: aside;
}
<div class="grid">
<div class="one">
One
</div>
<div class="two">
Two
</div>
<div class="three">
Three
</div>
<div class="four">
Four
</div>
<div class="aside">
Aside <br>
Aside <br>
Aside <br>
Aside <br>
Aside <br>
Aside <br>
Aside <br>
Aside <br>
</div>
</div>
为了获得"min-content"值,第四行的高度值是多少?
min-content
计算的旁网格区域的第四行的高度是多少?
https://jsfiddle.net/oygf360r/
在@temani-afif评论后编辑:
为了澄清这个问题。
我理解min-content
在这种情况下的行为。
我想知道的是,浏览器如何计算此值,因为第二列在该行中没有任何内容,因为side列的内容属于所有行。
在本例中,浏览器是否只忽略side列以进行比较?
或者这些元素有什么特殊的价值吗?
我也将其标记为浏览器,因为它可能与它更相关。
推荐答案
如果我没有记错,这是一个edge case,这种情况是由于处理多个网格轨道上的元素的方式(由规范的浏览器实现)来确定网格大小。
在您的示例中,根据grid-template-rows
属性值确定行分配空间的algorithm无法满足重新分区,因此在Chrome Current(2021年12月)中,所有行都设置为AUTO:
如果至少将一行设置为1FR,则算法将正确调度行之间的空格:
处理该问题的浏览器之间的差异:
(目前Firefox的功能与Google Chrome相同)
这篇关于在css网格中,最大内容和最小内容在一个大的网格区域之外是如何计算的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在css网格中,最大内容和最小内容在一个大的网格区域之外是如何计算的?
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07