【发布时间】:2020-04-13 07:50:59
【问题描述】:
我需要创建如图所示的网格项目。第一项需要占45%,第二项和第三项需要占52.5%,其余项需要各占50%。我无法将 HTML 更改为来自循环的所有网格子项。所以我无法通过编写的 CSS 来实现它,检查 sn-p,通过我的 css,它唯一可能使左侧所有项目的宽度为 50% 或 45%,但是如何从 4 更改项目的宽度到其余的项目。
是否可以不更改 HTML?
.atul {
display: grid;
grid-template-columns: 45% 52.5%;
grid-template-rows: auto;
grid-gap: 2.5%;
grid-template-areas: "card1 card2"
"card1 card3";
}
.card:nth-child(1) {
grid-area: card1;
}
.card:nth-child(2) {
grid-area: card2;
}
.card:nth-child(3) {
grid-area: card3;
}
<div class="atul">
<div class="card" style="background-color: red;">Card 1</div>
<div class="card" style="background-color: green;">Card 2</div>
<div class="card" style="background-color: yellow;">Card 3</div>
<div class="card" style="background-color: skyblue;">Card 4</div>
<div class="card" style="background-color: skyblue;">Card 5</div>
<div class="card" style="background-color: skyblue;">Card 6</div>
<div class="card" style="background-color: skyblue;">Card 7</div>
<div class="card" style="background-color: skyblue;">Card 8</div>
<div class="card" style="background-color: skyblue;">Card 9</div>
<div class="card" style="background-color: skyblue;">Card 10</div>
<div class="card" style="background-color: skyblue;">Card 11</div>
<div class="card" style="background-color: skyblue;">Card 12</div>
<div class="card" style="background-color: skyblue;">Card 13</div>
</div>
【问题讨论】:
-
一共有13条吗?或者可以有更多/更少?
-
不,它总是 13,不是更少,不是更多
-
2.5% 的网格间隙在前两行有效。但在接下来的所有行中,项目为 50-50,没有 2.5% 的差距。
-
是的@Michael_B,你是绝对正确的,所以 50% 意味着在那里,它们的宽度应该相等,这意味着每个 48.75%
-
实际上我在网格项中需要 30px 的间隙,也尝试使用 Margin,但是边距在网格项内应用,它假设在我应用 box-sizing:border 时超出网格项-box;