Возьмите это в качестве руководства и помните несколько вещей о CSS Grid;когда вы устанавливаете grid-column: 1/3
, вы устанавливаете этот элемент, чтобы использовать пространство ДВУХ столбцов, от линии сетки 1 (которая является левой границей сетки), до линии сетки 3 (которая может быть правой границей сетки), если у вас есть два столбца.Вы НЕ говорите, что элемент охватывает столбцы 2 - 3, это не то, как работает CSS Grid;работает по линиям сетки ;Вы можете прочитать больше об этом здесь: Полное руководство по сетке
Если вы хотите, чтобы сетка не охватывала всю ширину, вам следует определить максимальный размер для нее вместо использованияfr
единиц для предметов, выбрал максимальную ширину;так как fr
будет использовать доли от общего доступного пространства
Но специфическая проблема с изображением не выравнивается, я уверен, что это связано с самим изображением, не использующим доступное пространство или имеющим некоторое свободное пространство наэто то, что делает его не выровненным;попробуйте поставить границы на каждый элемент, чтобы увидеть, где они расположены.
.wrapper {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: minmax(100px, auto);
justify-content: start;
grid-gap: 10px;
}
.item-1 {
border: 1px solid red;
}
.item-2 {
grid-column: 2/5;
border: 1px solid blue;
}
.item-3 {
grid-column: span 4;
border: 1px solid green;
}
img {
display: block;
}
<div class="wrapper">
<div class="grid-item item-1">
<img src="" />
</div>
<div class="grid-item item-2">
<img src="" />
</div>
<div class="grid-item item-3">
<img src="" />
</div>
</div>