首页 >web前端 >css教程 >为什么我的 CSS 网格项目高度没有成为父容器高度的两倍?

为什么我的 CSS 网格项目高度没有成为父容器高度的两倍?

Patricia Arquette
Patricia Arquette原创
2024-11-29 15:58:12457浏览

Why Doesn't My CSS Grid Item Height Double the Parent Container's Height?

CSS 网格:元素高度计算混乱

您遇到了 CSS 网格元素高度的问题,特别是 .gridItem ,未按预期计算。在此网格设置中:

.gridContainer {
  height: 100px;
  grid-template-rows: 1fr;
}

.gridItem {
  height: 200%;
}

目的是让 .gridItem 的高度为其父级 .gridContainer 的两倍。然而,结果似乎反而考虑了子元素的高度。

理解 CSS 网格中的父子关系

使用 CSS 网格时,理解 CSS 网格中的父子关系至关重要亲子关系。在这种情况下, .gridItem 的父元素不是直接的 .gridContainer ,而是包含它的网格轨道。

当指定 grid-template-rows: 1fr; 时,您可以使用灵活的占用父级可用空间的 1 小数单位的高度。由于父轨道的高度固定为 100px,因此轨道的高度变为 100px。

因此,即使 .gridItem 的 height: 200%,它指的是其父轨道的高度,即 100px。这解释了为什么 .gridItem 的高度实际上是轨道高度的两倍,而不是父容器的高度。

修复:在容器和轨道上设置显式高度

要解决此问题,您需要在 .gridContainer 和网格轨道上指定固定高度。这建立了清晰的父子关系,并允许 .gridItem 的百分比高度正常运行。

.gridContainer {
  height: 100px;
  grid-template-rows: 100px;
}

.gridItem {
  height: 200%;
}

通过此调整,.gridItem 的高度现在应该是 .gridContainer 高度的两倍,正如预期的那样.

以上是为什么我的 CSS 网格项目高度没有成为父容器高度的两倍?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn