为什么我的网格中最后一项的高度会影响顶级网格项目的宽度?

发布于 2025-02-06 12:53:25 字数 1543 浏览 1 评论 0原文

https://jsfiddle.net/nqfzks6m/1/1/

上面是我的网格的jsfiddle。如您所见,如果将Card-4-content的高度更改为50px,则卡1稍宽,卡2的宽度较小。是什么原因造成的?网格模板列设置为“自动自动自动自动”。我看不出为什么底行的高度会影响顶级行的宽度。

.base-card {
  border: 1px solid black;
}

.card-1 {
  grid-area: card-1;
  background-color: red;
}

.card-2 {
  grid-area: card-2;
  background-color: blue;
}

.card-3 {
  grid-area: card-3;
  background-color: purple;
}

.card-4 {
  grid-area: card-4;
  background-color: pink;
}

.card-4-content {
  height: 50px;
}

.container {
  display: grid;
  grid-template-columns: auto auto auto auto;
  grid-gap: 25px;
  grid-template-rows: 155px 160px auto auto;
  grid-template-areas: "card-1 card-1 card-2 card-2" "card-1 card-1 card-2 card-2" "card-3 card-3 card-3 card-3" "card-4 card-4 card-4 card-4";
}
<div class="container">

  <div class="card-1">
    <div class="base-card">
      card-1
    </div>
  </div>

  <div class="card-2">
    <div class="base-card">
      card-2
    </div>
  </div>

  <div class="card-3">
    <div class="base-card">
      card-3
    </div>
  </div>

  <div class="card-4">
    <div class="base-card card-4-content">
      card-4
    </div>
  </div>
</div>

https://jsfiddle.net/nqfzks6m/1/

above is the jsfiddle for my grid. As you can see, if you change the height of card-4-content to 50px, card 1 becomes slightly wider and card 2 becomes less wide. What is causing this? The grid template columns are set to "auto auto auto auto". I can't see why the height of the bottom row would affect the width of the top level row.

.base-card {
  border: 1px solid black;
}

.card-1 {
  grid-area: card-1;
  background-color: red;
}

.card-2 {
  grid-area: card-2;
  background-color: blue;
}

.card-3 {
  grid-area: card-3;
  background-color: purple;
}

.card-4 {
  grid-area: card-4;
  background-color: pink;
}

.card-4-content {
  height: 50px;
}

.container {
  display: grid;
  grid-template-columns: auto auto auto auto;
  grid-gap: 25px;
  grid-template-rows: 155px 160px auto auto;
  grid-template-areas: "card-1 card-1 card-2 card-2" "card-1 card-1 card-2 card-2" "card-3 card-3 card-3 card-3" "card-4 card-4 card-4 card-4";
}
<div class="container">

  <div class="card-1">
    <div class="base-card">
      card-1
    </div>
  </div>

  <div class="card-2">
    <div class="base-card">
      card-2
    </div>
  </div>

  <div class="card-3">
    <div class="base-card">
      card-3
    </div>
  </div>

  <div class="card-4">
    <div class="base-card card-4-content">
      card-4
    </div>
  </div>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文