Я пытаюсь создать сетку элементов div, ширина каждого пикселя которых должна составлять X пикселей, и столько строк, сколько необходимо для их размещения. Я не знаю ширину внешнего div. Это легко сделать с помощью сетки CSS:
#container {
resize: both;
overflow: auto;
width: 170px;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(50px, 1fr));
}
#container div {
border: 1px solid red;
}
<div id="container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>
Теперь моя проблема в том, что я не хочу, чтобы в моей сетке были пустые ячейки (по эстетическим соображениям). Поэтому я хочу спрятать все элементы в последнем ряду, как показано здесь:
![Example image](https://i.stack.imgur.com/lfTJu.png)
Обратите внимание, что наличие сетки, умещающейся в 3 столбца, является просто особым случаемпроблемы: если я могу разместить 5 столбцов в сетке, я хочу удалить все элементы во второй строке.
Возможно ли добиться этого в CSS? В идеале без добавления вручнуюмедиа-точки останова и скрытие элементов в css вручную?
Если нет, то можно ли решить эту проблему с помощью Javascript?
Обратите внимание, что хотя я использовал css display:grid
в моем примере, это не требуется - все, что я хочу, это то, что выглядиткак сетка.