Проблема, с которой вы сталкиваетесь, не в свойстве grid-template-columns
. Имеет смысл подумать, что, просто используя это свойство, вы сможете свернуть пустые столбцы.
Проблема в том, что у вас ограничение максимальной ширины.
С этим требованием grid-template-columns
и grid-auto-columns
не могут выполнять работу самостоятельно, потому что в правиле minmax()
аргумент по умолчанию имеет значение max
.
Это означает, что в вашем макете, определенном так:
grid-template-columns: minmax(auto, 100px) auto
… пустой столбец всегда будет шириной 100 пикселей.
Если у вас не было ограничения по максимальной ширине, вы можете скрыть пустые столбцы, используя неявные столбцы (grid-auto-columns
) вместо явных столбцов (grid-template-columns
).
Если вы можете работать за пределами grid-*-columns
свойств, вот решение, которое может работать для вас:
.container {
display: grid;
grid-template-columns: auto 1fr;
grid-gap: 5px;
height: 100px;
background-color: #8cffa0;
padding: 10px;
}
.container > div:first-child:not(:empty) {
max-width: 100px;
}
.container > div {
background-color: #c0c0c0;
}
<div class="container">
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
<div>
Placeat, rerum illo eligendi, hic eum magnam quo architecto necessitatibus sunt sequi repellendus suscipit fuga tenetur atque corrupti modi saepe! Iusto, provident.
</div>
</div>
<hr>
<div class="container">
<div></div>
<div>
Placeat, rerum illo eligendi, hic eum magnam quo architecto necessitatibus sunt sequi repellendus suscipit fuga tenetur atque corrupti modi saepe! Iusto, provident.
</div>
</div>