【问题标题】:Why are my CSS grid items stacking on top of each other? [closed]为什么我的 CSS 网格项目堆叠在一起? [关闭]
【发布时间】:2021-01-11 09:49:16
【问题描述】:

当我将 CSS 网格和项目分配到网格模板区域时,我遇到了一些问题,我对 CSS 网格还很陌生,所以我可能会遗漏一些基础知识。我在这里做了一个游乐场:

https://jsfiddle.net/xvg84cuh/

.grid{
  display: grid;
  grid-template-rows: auto;
  grid-template-areas:
    "left right"
    ". right";
}
.grid div:nth-child(1){
  grid-area: left;
}
.grid div:nth-child(2),
.grid div:nth-child(3){
  grid-area: right;
}

div{
  float: left;
  width: 100%;
}
<div class="grid">
  <div>
    Image
  </div>
  <div>
    Stuff 1
  </div>
  <div>
    Stuff 2
  </div>
</div>

您可以看到“stuff 1”和“stuff 2”的 div 彼此堆叠,而不是按顺序显示在彼此下方。

感谢您的帮助:)

【问题讨论】:

  • 因为它们被分配到相同区域
  • 但是区域名称有多个实例,所以它们不是级联的吗? :S
  • 没有。同名的连续网格区域“合并”为一个,就像您在 Excel 中合并单元格的方式一样。
  • 好的,感谢您的输入 :) 已将其记录下来,不会重复同样的错误 :) 再次感谢。

标签: css layout css-grid


【解决方案1】:

它们是堆叠的,因为您为第二个和第三个孩子添加了相同的网格区域属性

.grid{
  display: grid;
  grid-template-rows: auto;
  grid-template-areas:
    "left right"
    ". third-right";
}
.grid div:nth-child(1){
  grid-area: left;
}
.grid div:nth-child(2){
  grid-area: right;
}
.grid div:nth-child(3){
  grid-area: third-right;
}

div{
  float: left;
  width: 100%;
}
<div class="grid">
  <div>
    Image
  </div>
  <div>
    Stuff 1
  </div>
  <div>
    Stuff 2
  </div>
</div>

有关grid-template-areagrid-area 的更多知识,请参阅: grid-template-area grid-area

【讨论】:

  • 感谢您的解决方案! :) 我的第一篇文章也在 cmets 中得到了深入的解释!但感谢它:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多