解决方案是简单地为每个列使用不同的名称。正如您已经注意到的,使用相同的名称意味着相同的区域将使用3列。
.sp-herowrapper {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-template-rows: auto;
grid-template-areas:
"heroh1 heroh1 heroh1"
"heroh2 heroh2 heroh2"
"heroh3 heroh3 heroh3"
"herobenefits1 herobenefits2 herobenefits3"
"herocta herocta herocta";
}
.sp-heroh1 {
grid-area: heroh1;
border: 1px solid black;
}
.sp-heroh2 {
grid-area: heroh2;
border: 1px solid purple;
}
.sp-heroh3 {
grid-area: heroh3;
border: 1px solid red;
}
.sp-herobenefits1 {
grid-area: herobenefits1;
border: 1px solid blue;
}
.sp-herobenefits2{
grid-area: herobenefits2;
border: 1px solid blue;
}
.sp-herobenefits3 {
grid-area: herobenefits3;
border: 1px solid blue;
}
.sp-herocta {
grid-area: herocta;
border: 1px solid green;
}
<div class="sp-herowrapper">
<div class="sp-heroh1">hero h1</div>
<div class="sp-heroh2">hero h2</div>
<div class="sp-heroh3">hero h3</div>
<div class="sp-herobenefits1">hero benefits </div>
<div class="sp-herobenefits2">hero benefits </div>
<div class="sp-herobenefits3">hero benefits </div>
<div class="sp-herocta">hero cta</div>
</div>